- Events with the same error code on the same Twilio account merge into one alert, for example a run of
11200errors caused by your application URL returning 404 - Warning-level events do not create alerts
In Flashduty On-call
You can get the integration push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, go to Channels and open a channel
- Select Configuration → Integrations → Private integration, then click Add an integration
- Select Twilio and click Save
- Open the new integration card and copy the push URL
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Twilio and enter an integration name
- Configure the default route and select a channel. You can add more rules under Routes after creation
- Click Save and copy the generated push URL
Configure Twilio
1
Set the Error webhook
- Sign in to the Twilio Console and go to Monitor → Error webhook
- Enter the full push URL of the Flashduty integration as the webhook URL and save
2
Test
The Error webhook has no “send test notification” button. To produce a real Error event:
- Under Phone Numbers, open a number and set the A call comes in URL to an address that returns 404, such as
https://example.com/not-found - Call the number. Twilio fails to fetch the URL and logs error
11200in the Debugger - After a few seconds, an alert titled
Twilio error 11200: ...appears in Flashduty
3
Turn on the auto-resolve timeout
Debugger events are one-time log entries. Twilio sends nothing when an error stops occurring, so these alerts never recover on their own. In the channel that receives these alerts, turn on the auto-resolve timeout. We suggest a timeout of 2 hours, counted from Incident trigger. Closing the incident also closes its alerts; if the error is still occurring, the next event opens the alert again.
Payload
Twilio sends one Debugger event per request. The body is
application/x-www-form-urlencoded, and Payload is JSON:
Every alert also carries the label
source=twilio, and its description links to the error code in the Twilio error dictionary (https://www.twilio.com/docs/errors/<error code>). Example title: Twilio error 11200: An attempt to retrieve content from https://app.example.com/voice returned the HTTP status code 404.
Alert Key
Flashduty computes the Alert Key from
AccountSid and Payload.error_code, not from the event ID Sid:
- Events with the same error code on the same account merge into one alert. The alert’s title, description, and labels show the latest event
- Different error codes, and different accounts (including different subaccounts), are different alerts
- This matches how Twilio Alarms count errors per account and per error code
Status and severity
An Error event is rejected if it lacks
AccountSid or Payload.error_code, or if Payload is not valid JSON.
FAQ
Why don't Warning events create alerts?
Why don't Warning events create alerts?
Twilio logs problems it could still process as warnings, such as TwiML validation warnings. They are frequent and rarely need the on-call engineer right away, so Flashduty accepts them without creating an alert. You can still see them in the Twilio Debugger.
The same error keeps occurring. Why is there only one alert?
The same error keeps occurring. Why is there only one alert?
Events with the same error code on the same account merge into one alert, whose event count grows instead of a new alert opening for each failure. With the auto-resolve timeout on, the incident closes after the timeout; if the error is still occurring, the next event opens a new alert.
Do I need to verify X-Twilio-Signature?
Do I need to verify X-Twilio-Signature?
No. Flashduty identifies the integration by the
integration_key in the push URL and does not verify the X-Twilio-Signature header. Keep the push URL as secret as a key.Troubleshooting
- Errors appear in the Twilio Debugger but not in Flashduty: make sure the URL under Monitor → Error webhook is complete (including
integration_key) and that the event level is Error - Requests are rejected (4xx): make sure the push URL belongs to a Twilio integration, not another integration
- Alerts never close: turn on the auto-resolve timeout in the channel