Skip to main content
Errors are JSON, whatever the endpoint:
Keep the request_id. It is what lets us find your exact request.

Retry only what retrying fixes

concurrency_exceeded is worth a backoff. insufficient_credits, unknown_voice and text_too_long will fail identically forever — read the message instead.

On the WebSocket

Errors arrive as frames and the socket stays open. Correct the frame and send it again: