Trying to kick a specific leg out of a three-way conference call via the Conversations API and it’s throwing a 409 Conflict every time. The error message is vague, just saying “Invalid state for this operation”.
We’ve got a hybrid setup where the Genesys Cloud platform handles the main conference, but we need a script to drop one participant (usually the supervisor) without terminating the whole call for the agent and customer.
Here’s the flow I’m testing:
- Create conference via
POST /api/v2/conversations/calls - Add agent and customer. Both connect fine.
- Add supervisor as third leg. Call state is
ACTIVE. - Attempt to remove supervisor. The docs imply there should be a way to disconnect a specific participant, but I’m hitting a wall.
Wait, actually I tried the PUT endpoint first to update status to DISCONNECTED but that didn’t work either. I’m confused because I can’t find a direct DELETE endpoint for a participant in the v2 spec, only PATCH.
The request I’m attempting looks like this (conceptually):
PATCH /api/v2/conversations/calls/9d1b2c3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e/participants/12345678-90ab-cdef-1234-567890abcdef
Authorization: Bearer <valid_token>
Accept: application/json
But I’m getting:
{
"message": "Invalid state for this operation",
"code": 409,
"status": "Conflict"
}
Things I’ve checked:
- Token has
conversation:writescope. - Conversation ID is definitely correct.
- Participant ID matches the supervisor’s leg in the conversation object.
- The call is definitely active. I can hear all three parties.
- Tried waiting 30 seconds after adding the supervisor before trying to kick them. Same error.
Is there a specific state the participant needs to be in before you can disconnect them? Or is this API endpoint just broken for conference calls? Feels like I’m missing a step to ‘isolate’ the leg first.
Anybody got a working curl command or SDK snippet for this? I’m stuck on step 4.