PATCH /api/v2/conversations/conversationId/participants/participantId failing with 409

{
 "errorCode": "invalid_request",
 "message": "Conversation participant update failed due to conflict with current state."
}

We’re trying to update a participant’s attributes mid-call using the Conversations API. Specifically, we want to push a custom attribute priority_level to the agent’s side of the conversation when a certain IVR node is hit. The goal is to have this visible in the agent desktop UI immediately without ending the interaction.

I’m sending a PATCH request to https://mycompany.mygen.com/api/v2/conversations/voice/{conversationId}/participants/{participantId}. The payload looks like this:

{
 "attributes": {
 "priority_level": "high"
 }
}

The request returns a 409 Conflict. I’ve checked the participant ID and conversation ID, and they’re definitely correct. The conversation is active, and the agent is connected. I’ve also tried including the state in the payload, but that just makes it worse.

Here’s the curl command for reference:

curl -X PATCH "https://mycompany.mygen.com/api/v2/conversations/voice/conv-123/participants/part-456" \
 -H "Authorization: Bearer {token}" \
 -H "Content-Type: application/json" \
 -d '{"attributes": {"priority_level": "high"}}'

The error message is vague. I’ve looked at the docs, and it says attributes can be updated, but it doesn’t specify if there’s a lock on them during an active state change or transfer. We’re using the Python SDK for most of our integrations, but this seems like a raw API call issue.

Is there a specific state I need to wait for before I can patch attributes? Or am I missing a header? The agent desktop doesn’t reflect any changes, so I’m assuming the update isn’t sticking. I’ve tried waiting 5 seconds after the agent answer event, but no luck. The conflict error suggests something is blocking the write operation. Maybe the participant object is locked by the system during the initial connection handshake? I’ve checked the logs, and there’s no other process touching this participant at the same time.

Any ideas on how to bypass this lock or if there’s a different endpoint I should be hitting for mid-conversation attribute updates? The standard PATCH method seems broken for this use case. I’ve also tried using the expand parameter, but that didn’t change anything. The response body is always the same 409. I’m stuck.