SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

How to Test and Troubleshoot Twilio Messaging StatusCallback Failures

Objective

If your StatusCallback  URL isn’t receiving webhook requests, this guide will walk you through a simple, reliable way to test your integration. Many developers face this issue when building with Programmable Messaging, and it can be difficult to tell whether the problem is with Twilio or your server. Using easy, publicly accessible tools like Webhook.site or Pipedream, this article helps you confirm whether Twilio is sending webhooks and whether your endpoint is able to receive them.

 

Product

Programmable Messaging

 

Environment

legacy Twilio Console

 

User Account Permission/Role(s) Required 

  • Access to your Twilio Console and API credentials (Account SID + Auth Token)
  • Ability to modify and test your application’s StatusCallback URL

 

Procedure 


1. Set Up a Temporary Webhook Endpoint

  • Go to Webhook.site or Pipedream
  • Copy the automatically generated unique URL — this will act as a temporary StatusCallback  URL so you can test webhook delivery.

 

2. Update Your Twilio Request

Add the temporary URL to the StatusCallback parameter in your API request or application code. Example (using cURL): 

curl -X POST "https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json" \
--data-urlencode "Body=Test message" \
--data-urlencode "From=+1234567890" \
--data-urlencode "To=+0987654321" \
--data-urlencode "StatusCallback=https://webhook.site/your-unique-url" \
--u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token

This forces Twilio to send all message status webhooks to the test endpoint.

 

3. Send a Test Message

Trigger a message using:

  • your application
  • API
  • SDK
  • or a tool like Postman

This ensures a real webhook attempt is generated.

 

4. Check the Temporary Endpoint

Return to Webhook.site or Pipedream and look for incoming requests.

If you see a POST request:

  • Twilio is successfully sending webhooks.
  • Your integration is working at Twilio’s side.

If nothing appears:

Twilio may not be able to reach your callback URL. Double-check your request for:

  • correct StatusCallback parameter (case-sensitive)
  • correct URL
  • no typos or incorrect domain

 

5. Interpret the Results

  1. If the webhook appears at the temporary URL:
    The issue is likely with your original server (e.g., firewall blocks, authentication errors like 401, server errors like 500, incorrect routing, or SSL issues). Check your server logs to see why your endpoint didn’t accept the request.
  2. If the webhook does not appear:
    This usually indicates a configuration issue—incorrect or missing StatusCallback, wrong casing, an unreachable/invalid URL, or a typo in the callback path. Fix the URL and try sending another test message.

 

6. Revert Back to Your Original StatusCallback URL

Once you confirm that Twilio is sending webhooks correctly:

  1. Replace the temporary URL with your real endpoint.
  2. Trigger another message.
  3. Monitor your server logs to ensure you are receiving the callback.

 

Additional Information 

  1. The StatusCallback parameter is case-sensitive; always use the correct casing.
  2. The Message SID (e.g., SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) is a unique identifier for each message and can be used to trace message status in Twilio logs.
  3. For more details, see Track the Delivery Status of an Outbound Twilio SMS or MMS Message
    and Twilio Message SID documentation
  4. A server response of 500 or 401 means your callback URL was reached, but your server rejected or failed the request. Check your server logs and authentication logic.
  5. If you have followed all steps and still do not receive callbacks, please contact Support team with:
    • Message SID
    • StatusCallback URL
    • Timestamp of your test
    • Any server logs
       

 

Have more questions? Submit a request
Powered by Zendesk