Skip to main content

HTTP Errors (Handshake)

These occur during the WebSocket upgrade request, before the connection is established.
CodeCause
400Invalid parameters — unsupported provider, missing required fields, or invalid voice format
401Missing or invalid API key
403Ultra model restricted on public WebSocket endpoint. Use REST API for Ultra.
403Cloned voice restricted — organization requires identity verification for cloned voices (Qwen3TTS, Minimax clones)

WebSocket Errors (Runtime)

After the connection is established, errors arrive as JSON frames:
{
  "error": "Error in audio response"
}
The connection closes shortly after an error frame.

Error Messages

ErrorCause
"Error in audio response"The TTS provider returned an error during synthesis
"Error in remaining audio response"Provider error while synthesizing buffered text during connection close

Troubleshooting

SymptomCauseFix
Connection rejected (400)Invalid voice formatUse Provider.Model.VoiceId format (e.g., Telnyx.NaturalHD.astra)
Connection rejected (401)Missing authPass Authorization: Bearer <key> header during WebSocket upgrade
No audio after connectingMissing handshakeSend {"text": " "} as first frame
audio field is nullExpected behaviorFor streamed providers (Telnyx, Rime, Minimax, Resemble, Inworld), audio arrives in separate streamed frames
Text sent but no responseSentence bufferingText is buffered until a sentence boundary. Send more text, use flush: true, or end with punctuation
Ultra not working on WebSocketIntentional restrictionUltra is REST-only. Use POST /v2/text-to-speech/speech
Cloned voice rejectedIdentity verification requiredComplete L2 verification in the Telnyx Portal