provider object for debugging.
For a general overview of the error format, see Errors.
Error Code Mapping
The following table shows how common Telnyx error scenarios are mapped to Chirp error codes.| Scenario | Chirp Code | HTTP | Description |
|---|---|---|---|
| Invalid destination number | invalid_phone_number | 400 | The destination phone number is not valid or cannot receive SMS. |
| Number not assigned | phone_number_not_assigned | 400 | The sending phone number is not assigned to your app. |
| Media too large | media_too_large | 400 | The MMS media attachment exceeds the 5 MB size limit. |
| Carrier rejected | message_undeliverable | 402 | The carrier rejected the message (spam filter, invalid route, etc.). |
| Destination unreachable | message_undeliverable | 402 | The recipient’s phone is unreachable or the number is disconnected. |
| Telnyx API error | telnyx_api_error | 424 | An unexpected error occurred with the Telnyx API. |
| Telnyx service down | telnyx_api_unavailable | 424 | Telnyx API is temporarily unavailable. |
| Rate limited | rate_limit_exceeded | 429 | Too many requests sent in a short period. |
Example Error Response
When an SMS fails to send, you receive a standard Chirp error response with the Telnyx error details in theprovider object:
SMS delivery failure
Common Delivery Failures
Invalid Destination Number
The destination phone number is not valid. This can happen when the number is formatted incorrectly, does not exist, or is a type that cannot receive SMS (e.g., some toll-free numbers or short codes). How to fix:- Verify the phone number is in E.164 format (e.g.,
+14155552671) - Confirm the number is a mobile phone that can receive SMS
- Remove any spaces, dashes, or parentheses from the number
Invalid destination
Carrier Rejected
The recipient’s carrier rejected the message. This typically happens due to spam filtering, content restrictions, or carrier-level blocking. Common reasons:- Message content triggered a spam filter
- The sender number is not properly registered for A2P (Application-to-Person) messaging
- The carrier blocks messages from certain number types
- The recipient has opted out of receiving messages from this number
- Review your message content for spam trigger words
- Ensure your sending number has a proper messaging profile configured
- Register your brand and campaign with The Campaign Registry (TCR) for 10DLC numbers
- Check if the recipient has opted out
Rate Limited
You are sending messages too quickly. Telnyx and carriers enforce rate limits to prevent abuse. How to fix:- Implement a sending queue with rate limiting
- Spread messages over a longer time period
- Use the
Retry-Afterresponse header to determine when to retry - See Rate Limits for Chirp API rate limits
Webhook Delivery Failures
When an SMS fails to deliver after being accepted, Chirp sends a webhook notification with the failure details.SMS failure webhook
Webhook delivery failures happen asynchronously. The initial API call may return a success response (message queued), but the delivery can still fail later. Always set up webhooks to track delivery status.
Troubleshooting
If you are experiencing persistent SMS delivery issues:- Check your messaging profile — Ensure your Telnyx messaging profile is properly configured with the correct webhook URL
- Verify 10DLC registration — For US numbers, ensure you have completed A2P 10DLC registration through TCR
- Test with different carriers — Try sending to numbers on different carriers to isolate carrier-specific issues
- Review message content — Some content may trigger carrier spam filters
- Check number capabilities — Confirm your sending number supports SMS/MMS
- Monitor webhook events — Set up webhooks to track delivery status in real time