Twilio Error Codes Reference

Twilio error and warning codes by product — Voice, SMS, Video, Auth.

A searchable reference for Twilio error and warning codes across the REST API, Messaging, Voice, Verify and Video products — each with its product area, meaning and how to resolve it. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What does Twilio error 30003 mean?

Error 30003 (Unreachable destination handset) is a Messaging delivery error meaning the carrier could not reach the recipient's phone — it may be powered off, out of coverage, or the number is unable to receive SMS. It is a final delivery status, not an API request error.

This is a searchable reference for Twilio error and warning codes across the products you actually integrate — the REST API, Programmable Messaging (SMS/MMS), Programmable Voice, Verify, and Video. Each entry shows the product area that raised the code, what it means, and how to resolve it, so you can tell a request mistake from a delivery failure at a glance.

How Twilio organises error codes

Twilio assigns error codes into numeric ranges that map to a product and to a point in the lifecycle:

1xxxx   Voice / TwiML retrieval and execution (e.g. 11200 HTTP retrieval failure)
21xxx   REST API request errors — synchronous, returned on the API call
30xxx   Messaging delivery errors — asynchronous, via status callbacks
53xxx   Video room and participant errors
60xxx   Verify / Authy (e.g. 60200 invalid parameter)

The most important distinction is synchronous vs asynchronous:

  • Synchronous (21xxx): Returned immediately with a non-2xx HTTP status and a code field in the response body. These mean the API call itself was rejected — bad To number, missing parameter, unverified caller ID, or trial account restriction.
  • Asynchronous (30xxx): Arrive later in a MessageStatus webhook callback. The API call returned 201 Created, but the carrier later rejected or could not deliver the message. If you are not wiring up a status callback URL, these errors are invisible.

The errors you will encounter most often

CodeProductMeaningFix
21211MessagingInvalid To phone numberUse E.164 format: +14155551234
21608MessagingTrial account, unverified recipientVerify the number in console
11200VoiceHTTP retrieval failure (TwiML fetch failed)Make webhook public, return valid TwiML, check TLS
30003MessagingUnreachable destination handsetPhone off or out of coverage; retry later
30007MessagingMessage blocked by carrierRegister A2P 10DLC brand + campaign
30034MessagingMessage blocked — unregistered senderComplete 10DLC registration with TCR
60200VerifyInvalid parameterCheck the to number and channel parameter

Why 30007 and 30034 are so common

Since US carriers began enforcing A2P 10DLC registration, unregistered application-to-person SMS traffic is routinely filtered. 30007 (carrier filtering) and 30034 (unregistered sender) now account for a large share of delivery failures. The fix is registering your brand and campaign with The Campaign Registry (TCR) and linking them to the Twilio messaging service you use to send. Once registered, most filtering clears within 24 to 48 hours.

Tips for debugging

  • Always wire up a StatusCallback URL on your messaging requests so 30xxx errors surface in your logs rather than silently disappearing.
  • A 201 Created from the Twilio REST API only confirms Twilio accepted the request — it says nothing about carrier delivery.
  • For Voice, 11200 almost always means your TwiML webhook returned something that is not a 200 OK with a valid XML body, or the URL is blocked by a firewall or basic auth.
  • Use the search field here to filter by code number, product area, or keyword so you do not have to scroll the full list. Everything runs in your browser; nothing is uploaded.