PATCH /conversations/webchat/participants returning 409 due to stale ETag during mid-flow attribute update

We’re trying to update custom attributes on a webchat participant mid-session from a Node.js backend. Our service receives a conversation.participant.added event, runs enrichment logic, and then attempts to patch the participant attributes back to Genesys.

Using the JS SDK patchParticipant method. We’re pulling the if-match header value from the event’s entity.version field, but the request keeps failing with a 409.

await genesyscloud.conversations.patchParticipant({
 conversationId: event.entity.id,
 participantId: event.participantId,
 body: {
 attributes: {
 ...event.entity.attributes,
 'enrichmentStatus': 'complete',
 'riskFlag': true
 }
 },
 headers: {
 'if-match': event.entity.version.toString()
 }
});

Error response:

{
 "code": "concurrentModification",
 "message": "Participant update failed due to concurrent modification",
 "status": 409
}

It looks like the revision number is incrementing between the event emission and our PATCH call. Maybe internal system updates are bumping the version. We’ve tried adding a delay, but that just makes the race condition unpredictable. The ETag from the webhook payload seems to be stale immediately. Don’t see a way to bypass the ETag check for attribute updates. The revision bump happens too fast. ETag strategy isn’t working.