Updating participant attributes mid-conversation via SDK returns 400

I’m trying to update participant attributes during an active conversation using the Embeddable Client App SDK. The goal is to set a custom attribute queue_priority to high when a supervisor toggles a flag in our custom desktop extension.

Here is the snippet I’m using:

const updatePayload = {
 "attributes": {
 "queue_priority": "high"
 }
};

await sdkInstance.conversations.updateParticipantAttributes(
 conversationId,
 participantId,
 updatePayload
);

The request fails with a 400 Bad Request. The error message is generic: Invalid request body. I’ve checked the API docs for PATCH /api/v2/conversations/{conversationId}/participants/{participantId} and the schema seems to expect a participant object wrapper, not just the attributes map.

I tried wrapping it like this:

{
 "participant": {
 "attributes": {
 "queue_priority": "high"
 }
 }
}

But that gives a 409 Conflict, saying the participant state is locked. Is there a specific SDK method or API endpoint that handles attribute updates without locking the whole participant object? Or am I missing a header requirement for mid-conversation updates?