400 Bad Request on PATCH /api/v2/conversations/voice/{id}/participants - setting participant attributes mid-call

Hey everyone,

Trying to push a custom attribute to a participant mid-call using the REST Proxy in . The goal is to flag the call as “supervised” so the recording retention policy updates correctly. I’ve got the hitting the endpoint, but it keeps failing.

The endpoint is PATCH /api/v2/conversations/voice/{conversationId}/participants/{participantId}.

Here is the JSON payload I’m sending in the body:

{
 "participantId": "12345678-1234-1234-1234-123456789012",
 "attributes": {
 "supervised": true
 }
}

I’m setting the participantId from the session variable that holds the current participant ID. The response comes back as 400 Bad Request.

The error body says:

{
 "message": "Invalid input: participantId does not match the participant being updated",
 "code": "bad.request"
}

I’ve verified the ID is correct by logging it to the trace. It matches the ID in the URL. I also tried removing the participantId from the body, thinking maybe the API expects it to be null when patching the path variable, but that gave me a 422 Unprocessable Entity saying attributes is required.

Am I missing a specific field in the request body? Or is there a different way to update attributes on an active participant?

I’ve checked the API docs for updateParticipant, but the examples don’t show this specific error case.