> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Text-to-Speech REST API errors

> Error codes for the Telnyx Text-to-Speech REST API — synthesis failures on the speech endpoint and failures listing the voice catalog.

Errors from the [Text-to-Speech REST API](https://developers.telnyx.com/docs/voice/tts/rest-api/api-reference.md) return an `errors` array of objects, each with a string `code`, a `title`, and a `detail`. The `code` values are numeric identifiers but are always JSON strings (for example, `"90103"`). Validation rejections (invalid provider, missing fields) return schema-level validation errors instead of the codes below.

## REST API error codes

| Code | Title | Cause |
| - | - | - |
| 90103 | Failed to produce text to speech | The text-to-speech engine could not produce audio. The `detail` mirrors the underlying provider error, such as an invalid provider API key or an upstream availability failure; when the internal error cannot be rendered safely, `detail` is the generic message `An unexpected error occurred, please contact support@telnyx.com if the problem persists.` Contact Telnyx support with the request ID when the detail does not describe a problem in your request. |
| 90104 | Failed to list voices | The voice catalog could not be retrieved from the upstream provider. Retry the request. |

These codes are scoped to the Text-to-Speech REST API. `90103` also appears in the [Call Control](https://developers.telnyx.com/docs/voice/programmable-voice/dials-per-second-limit.md) surface as "Dials per second limit exceeded"; the two errors are unrelated and share only the numeric code.

Check the [WebSocket errors](https://developers.telnyx.com/docs/voice/tts/websocket-streaming/errors.md) page for errors returned over the WebSocket transport.
