This guide is intended to help troubleshoot any issues with placing outbound Twilio Programmable Voice calls. This guide covers the following topics for diagnosing and resolving your issues:
Please start at the top, and walk through each of the troubleshooting steps as you work your way down the page.
Check Your Call Logs
Check the Twilio Call Logs to validate that we have successfully received and processed a request to send an oubound call or accept an incoming call. You can view the logs and search for your call record via either Console, or the REST API.
A record doesn't exist for the call: If you don't see a record for the call in question, then there is likely an issue elsewhere. Continue reading for additional troubleshooting.
A record does exist for the call, but the call doesn't connect: If you do see a record for the call in question, but the call destination isn't connected, then there is likely an issue elsewhere. Continue troubleshooting with the steps found in
A record does exist for the call: If you do see a record for the call in question, this indicates Twilio has successfully received the a request for a call, and the issue lies elsewhere. Continue troubleshooting with the following checklist:
- Are you troubleshooting an Elastic SIP Trunking or SIP Domain call?
- Are you (or a caller) hearing the "An application error has occurred” error on your call?
- Is an outbound call not connecting?
- Does the call log show any Debug Events?
- Is your TwiML URL or Application SID responding as intended?
- Are you (or a caller) experiencing any audio quality issues?
Check for Twilio Incidents
Check the Twilio Status Page to see if there is an active incident, or an incident during the timeframe you reported issues, that could be causing your issues. For full details, please see Checking Twilio Service and API Status with the Status Page.
No incidents are listed that may be affecting calls: If you don't see an incident posted that may affect calls, then there is likely an issue elsewhere. Continue reading for additional troubleshooting.
An incident may be affecting calls: If you see an incident posted that may affect outgoing Twilio calls, please monitor the status, and then test again once the incident is resolved.
Failed or Unsuccessful API Call Requests
If you aren't seeing a record of your call, then there was likely an incident, or an issue with with your API request. Try attempting to place your call again, and check for similar results.
When Twilio receives an invalid API request, we return a
400 Bad Request response, along with a secondary 5-digit error code, and a message explaining what the issue is. Here are the most common problems we see for outbound voice calls:
|10001, 20003, or 20005||Invalid credentials, or project is suspended/closed.||Verify your project has an active balance by logging into Console, and that your request is using the correct Account SID and Auth Token.|
|21203, 21215, or 32205||Destination is not allowed.||You need to enable calling to this destination in Geo Permissions.|
|21210, 21212, or 21213||
||Verify your request has a valid Twilio phone number on your project, or a verified non-Twilio caller ID in the
|21201, 21202, or 21211||
||Verify your request has a non-premium or shared cost phone number in the
|21214, or 21217||
||Verify your request has a valid phone number in the
If your error is not listed here, you can find the list of 2XXXX REST API errors along with instructions for resolving these issues in our API Errors and Warnings Dictionary.
Escalate to Twilio Support
If you can rule out all of the above issues, Twilio's Support team can help investigate what went wrong. Please collect 3 or more examples of calls that are not registering in your call log from the last 24 hours, and include the following information:
- Caller (from) number
- Callee (to) number
- Your Twilio project Account SID
- Call SIDs (If you have them)
- Timestamps of call attempts
- Snippet of code used for placing your call
When you have collected this information, please share it with our Support team.