PATCH /api/v2/conversations/voice/{conversationId} disconnect participant 400 error

I am trying to programmatically disconnect a specific participant from an active voice conference. The setup involves a three-way call managed via the Genesys Cloud Conversations API. I have the conversation ID and the participant ID for the agent I want to drop. The documentation suggests using a PATCH request to update the conversation, but the specific payload structure for a disconnect action seems ambiguous.

I attempted to send a PATCH request to /api/v2/conversations/voice/{conversationId} with the following JSON body:

{
 "actions": [
 {
 "type": "disconnect",
 "participantId": "5f8a9b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c"
 }
 ]
}

The response is consistently a 400 Bad Request. The error message returned is Invalid action type. I verified the participant ID is correct by querying the participants endpoint first. I also tried using method instead of type in the action object, as some older forum posts hinted at legacy syntax, but that resulted in a 422 Unprocessable Entity.

Is there a specific action type string required for voice conferences? I noticed the docs mention transfer and hold actions, but disconnect is less clear. I am using the Python SDK, specifically the put_conversations_voice_conversation method, which maps directly to this endpoint. The token has full conversations:write scope. I need to ensure the call ends cleanly for the disconnected party without dropping the other participants. Any working examples of the payload would be appreciated.