Attempting to programmatically transfer an active voice conversation to a specific queue using the Node.js SDK. The goal is a blind transfer without any warm handoff logic. I’m hitting a 409 Conflict error consistently, even though the conversation is in connected state and the target queue exists.
Here is the request object being passed to client.conversationsApi.patchConversationVoiceTransfer:
const transferRequest = {
transferTo: {
queueId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
type: "queue"
},
transferType: "blind"
};
await client.conversationsApi.patchConversationVoiceTransfer(conversationId, transferRequest);
The error response body is:
{
"errors": [
{
"code": "invalid_request",
"message": "Transfer target is invalid or not reachable."
}
]
}
I’ve verified the queueId via the GET /api/v2/queues/{id} endpoint, and it returns a valid 200 with status: "open". The calling user has the conversation:transfer permission. Interestingly, this same code works for transferring to a user (type: "user"), but fails for queues.
Is there a specific capability required on the queue level that isn’t documented? Or is the transferTo structure different for queues versus users in the JS SDK? The API docs show transferTo as an object, but the schema validation seems strict. I’m using SDK v3.2.1.
Checked the network tab in Postman with the exact same JSON payload and token, and it works there. This suggests the SDK might be serializing the request incorrectly or adding headers that cause the conflict. Any ideas on what’s breaking in the SDK layer?