Texters can see "message not delivered" labels in conversations, which allows for transparency in message deliverability and remediation. Investigate the error codes behind these notifications by running a Program CSV export of your “Conversation Messages.” (Column V provides the Twilio error code, Column W provides the description.)
Twilio Deliverability Errors & Their Meanings
|Commonly Seen Error Codes||What's Really Happening|
|21610||You're trying to send a message to a number that has opted out of receiving messages using a STOP keyword.||(See our support guide on complying with Opt-Out requests.)|
|21612||The carrier you’re sending to is not a supported carrier, or the “to” phone number is not properly formatted.||(See acceptable contact cell number format to load to TextOut.)|
|30003||Unreachable Destination Handset||The "to" number is unreachable - likely the device is powered down, out of the service area, or may not accept messages|
|3004||Message Blocked||Your message has been blocked from reaching the destination.|
|30005||Unknown Destination Handset||The destination carrier is reporting the "to" number is unknown, or no longer in service.|
|30006||Landline or Unreachable Carrier||The destination is a landline, or the destination carrier can't be reached.|
|30007||Carrier Violation||The destination carrier is filtering out your messages for delivery.|
|30008||Unknown Error||The destination carrier has returned a generic error message.|
Otherwise known as "getting flagged as spam." Carriers’ filtering methods are a “closely guarded secret.” There’s no standard and often involves machine learning methods. Carriers are looking at both message content and volume. Below are a few tips using deliverability patterns we’ve noticed:
Top 3 things to avoid when using links
- No links in your Initial Outbound message.
- No redirect links or link shortening services like bit.ly! Use direct, clear (not “mysterious looking”) links.
- No more than one link in a message.
Important: Sometimes there’s no discernible reason that a link isn’t delivering consistently. In that case, swap it out for a different link, and have Texters try re-sending those messages.
Follow best practices for Initial Outbounds and Recommended Replies
- Use a short, clear Initial Outbound, and identify the contact, the sender, and what organization is sending the text.
- Don’t shout (no all-caps), keep messages short, no aggressive language.
Programs sending the same message at large volumes over short periods will likely attract carrier violations. Consider A/B (or more variations) messaging, and swap Recommended Replies out periodically. Just a slight re-wording is often enough to get a previously flagged message to send.
Find the pattern!
Export conversation messages, look for patterns in messages marked with a 30007 error, edit messages per the tips above and in our support materials, and try resending!