Problem
Trying to reroute an active voice call to a support queue using the Python SDK. The endpoint should accept a simple transfer action. We’ve got the conversation ID and the target queue ID locked down. Script runs fine until the actual PATCH call fires.
Code
from genesyscloud import ConversationVoiceApi, ApiClient
api_client = ApiClient(client_id, client_secret)
api = ConversationVoiceApi(api_client)
payload = {
"actions": [
{
"type": "transfer",
"to": {
"id": "queue-uuid-123",
"type": "queue"
}
}
]
}
api.patch_conversations_voice_conversation(conversation_id="conv-uuid-456", body=payload)
Error
It’s throwing a straight 400 Bad Request back. The response body just says Invalid transfer action structure. Docs show the exact same JSON shape for outbound calls. Tried swapping type to routing or adding a reason field. Nothing sticks. The token is fresh and other GET calls on the same client work fine. Clock sync is good. Weird how the validator complains about structure when the schema matches perfectly. We’re running genesyscloud v2.4.1 in a standard AWS Lambda handler. The SDK seems to serialize the list into a flat object sometimes. Debug logs show the payload gets mangled before it hits the wire. Tried adding a timeout parameter too. Just breaks the request faster. We’ve tried bypassing the SDK with raw requests just to test. Same 400 response comes back every time. Not sure what else to check.