Disconnecting specific participant from conference via Conversations API returns 400

Trying to drop a specific agent from an active conference call using the Python SDK. The goal is to keep the customer connected while removing the agent who just finished their part.

Here is the code snippet:

client = purecloudapi.ConversationsApi(configuration)
conversation_id = "conf-abc-123"
participant_id = "agent-xyz-789"

try:
 client.post_conversations_conversations_id_participants_participant_id_disconnect(conversation_id, participant_id)
 print("Agent disconnected")
except Exception as e:
 print(f"Error: {e}")

The API call throws a 400 Bad Request. The error payload says:

{
 "message": "Participant is not in the conversation or is already disconnected",
 "code": "bad_request"
}

I’ve verified the conversation_id and participant_id are correct by checking the /conversations/conversations/{id} endpoint. The participant is listed with status: "connected".

Is there a different endpoint for conference participants? Or do I need to pass extra headers for the trace context? The OTel span shows the request reaching the GC API but failing immediately. Running this from our Manila server, timezone UTC+8.