PATCH /api/v2/conversations/{id} participant attributes returning 409 Conflict

Running into a weird conflict error when trying to update participant attributes on a live voice interaction from my custom agent desktop app. I’m using the Embeddable Client App SDK and hitting PATCH /api/v2/conversations/voice/{conversationId} with a simple payload to set a custom attribute. The request fails with a 409 Conflict and the error code RESOURCE_CONFLICT. It’s particularly strange because the same call works fine if I wait 5 seconds after the initial connect event, but fails immediately after the conversation:update event fires.

Here’s the JSON payload I’m sending:

{
 "participants": [
 {
 "id": "user-123",
 "attributes": {
 "custom:order.id": "ORD-9988"
 }
 }
 ]
}

I’ve checked the SDK docs and the REST API reference. Both say that updating participant attributes mid-conversation is supported. The attribute key exists in the system and is mapped correctly. Is there a race condition I’m missing here? Or is the SDK caching the participant object and sending stale data?