PATCH /conversations/voice/{id}/participants fails with 409 when setting attributes mid-call

Context:
I am trying to update participant attributes dynamically during an active voice conversation. I am using the Python SDK to issue a PATCH request to /api/v2/conversations/voice/{conversationId}/participants. The payload sets attributes on the participant object.

body = {'participantId': '123', 'attributes': {'queue': 'sales'}}
client.conversations_api.patch_conversation_voice_participant(conv_id, body)

Question:
Why does this setting return a 409 Conflict error? The docs imply attributes are mutable, but the API seems to reject changes if the participant state is not connected. Is there a specific state transition required before attributes can be patched?

Make sure you include the If-Match header with the participant’s current ETag.

The documentation states, “To update a participant, you must provide the ETag from the previous GET request to prevent concurrent modification conflicts.”

headers = {'If-Match': 'W/"abc123"'}
client.conversations_api.patch_conversation_voice_participant(conversation_id, participant_id, body, headers=headers)