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 it works
Twilio organises error codes into numeric ranges that roughly map to a product and a moment in the request 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
60xxx Verify / Authy (e.g. 60200 invalid parameter)
53xxx Video room and participant errors
Synchronous errors (the 21xxx range) come back immediately with a non-2xx HTTP status and a code field; they mean your API request was malformed — a bad To number, missing parameter, or unverified caller ID. Asynchronous errors (the 30xxx range) arrive later as a MessageStatus callback with an ErrorCode; the API call succeeded but the carrier ultimately could not deliver the message.
Tips and example
Always wire up a status-callback URL for messaging so you capture 30xxx delivery errors — the initial API 201 Created does not mean the SMS was delivered:
21211 → fix the To number to valid E.164 (+14155551234)
21608 → trial account: verify the recipient number first
30003 → recipient unreachable (off / no coverage) — retry later
30007 → carrier filtering — register A2P 10DLC, clean content
11200 → make the TwiML webhook reachable and return valid TwiML
For US application-to-person SMS, most 30007 and 30034 blocks disappear once your 10DLC brand and campaign are registered with The Campaign Registry. Everything runs in your browser; nothing is uploaded.