The short answer: a text message fails to deliver for one of nine reasons, and they sort into three buckets. Either the network refused it (carrier filtering, unregistered traffic, throughput limits), the destination cannot receive it (invalid or landline number, handset off, message blocking), or a rule stopped it (blocked sender, opt-out list, content triggers). Diagnosing a delivery failure is a process of elimination across those nine causes, and each one has a specific fix.
This reference walks through all nine, roughly in order of how often they turn out to be the culprit for organizational senders. For background on how delivery status actually gets reported, our companion guide to SMS delivery receipts (DLRs) explains what "sent," "delivered," and "failed" really mean.
The 9 Causes, and How to Fix Each One
1. Carrier Filtering
What happens: The carrier's spam defenses flag your message and drop it, often silently. Your dashboard may even show "delivered" while the recipient's phone shows nothing. Filtering reacts to content patterns, sending behavior, sender reputation, and registration status, and it is the most common cause of large-scale, unexplained delivery loss for business senders.
The fix: Remove spam signals: drop public link shorteners, identify your organization in the message, avoid restricted content categories, and keep sending patterns steady. Then verify your registration is complete and accurate. Our full explainer on what carrier filtering is covers the mechanics and the recovery playbook.
2. Invalid or Landline Number
What happens: The destination number does not exist, was disconnected, was typed with a wrong digit, or belongs to a landline that cannot receive SMS at all. These failures usually return an explicit error rather than vanishing silently.
The fix: Validate numbers at the point of collection (length, format, country code) and run periodic list hygiene to remove disconnected numbers and landlines. Beyond wasted messages, a high invalid-number rate damages your sender reputation, which feeds back into cause number 1.
3. Blocked Sender
What happens: The recipient personally blocked your number on their phone, or reported your messages as spam to their carrier. Everything you send afterward disappears without any error visible to you; the block lives on the handset or in the carrier's records, not in your platform.
The fix: You cannot unblock yourself, and attempting to reach a person who blocked you from a different number violates carrier rules and destroys trust. Prevention is the only strategy: send only wanted, expected messages to people who opted in, identify yourself clearly, and keep frequency reasonable.
4. Unregistered 10DLC Traffic
What happens: In the United States, business messages sent from ordinary 10-digit local numbers must be registered through the 10DLC system with The Campaign Registry, identifying the brand and the messaging campaign. Carriers heavily filter or outright block application-to-person traffic from unregistered local numbers. Organizations that started texting years ago and never registered often discover this as a slow, then sudden, collapse in deliverability.
The fix: Complete brand and campaign registration, and make sure the declared use case matches what you actually send. If you use a messaging platform, confirm registration was actually filed for your organization rather than assumed.
5. Handset Off or Out of Coverage
What happens: SMS is store-and-forward: the carrier's SMSC holds a message for a phone that is powered off, in airplane mode, or outside coverage, and retries delivery for a validity period. If the phone stays unreachable past that window (typically hours to a few days, varying by carrier), the message expires undelivered.
The fix: Nothing is wrong with your sending; this is a timing problem. For time-sensitive content like same-day reminders, send early enough for retries to work, and treat "expired" statuses as a cue to attempt again later or fall back to a phone call for critical notices.
6. Message Blocking Active on the Account
What happens: Some mobile accounts have messaging disabled entirely: parental controls, employer-managed lines, prepaid plans without SMS, or a carrier-level "message blocking is active" setting. Senders typically get an explicit error indicating the recipient cannot receive messages.
The fix: There is no sender-side workaround; the recipient controls the setting. Flag the contact, use an alternate channel (email or voice), and let the person know in that channel that texts to their number are being refused by their account, in case the blocking is unintentional.
7. Recipient on Your Opt-Out List
What happens: The recipient previously replied STOP (or a variant like UNSUBSCRIBE or QUIT), and your platform correctly suppresses further sends to them. Staff sometimes read these suppressions as delivery failures when a contact says they never got a message.
The fix: This is the system working. The TCPA (47 U.S.C. 227), FCC rules (47 CFR 64.1200), and the CTIA Messaging Principles and Best Practices all require honoring opt-outs, and re-adding an opted-out contact manually creates legal exposure. If someone opted out by accident, they can opt back in themselves, typically by texting START or re-consenting through your normal opt-in flow.
8. Content Triggers
What happens: A specific element of the message body trips filters even when the sender's reputation is healthy: a public link shortener, a suspicious-looking URL, prohibited or restricted subject matter under carrier codes of conduct, excessive capitalization, or wording that pattern-matches known scams. One problematic template can fail while every other campaign delivers fine, which is the diagnostic tell.
The fix: Isolate the failing template and change one variable at a time: replace shortened links with branded full-domain URLs, soften urgent-money phrasing, remove flagged terms, and resend to a test device on each major carrier. When a single change restores delivery, you have found the trigger.
9. Throughput Limits and Queuing
What happens: Every number type and 10DLC campaign has carrier-imposed rate limits on how many messages per second it may send. When a large blast exceeds them, messages queue. Most arrive late rather than never, but long queues can push messages past their validity period, collide with event times (a reminder arriving after the appointment), or fail outright when queues overflow.
The fix: Match your sending capacity to your list size: schedule large campaigns to spread over a window, start sends earlier, and if volume is consistently high, move to number types and registrations with higher throughput, such as short codes for large one-way alert programs.
Quick Diagnostic Table
| Cause | Error Visible to Sender? | Scope | First Move |
|---|---|---|---|
| 1. Carrier filtering | Often none (silent) | Many recipients, one or more carriers | Audit content, links, registration |
| 2. Invalid or landline number | Yes, explicit error | Single contact | Validate and clean the list |
| 3. Blocked sender | No | Single contact | Prevention only; use another channel |
| 4. Unregistered 10DLC | Sometimes error codes | All U.S. traffic from the number | Complete brand and campaign registration |
| 5. Handset off or out of coverage | Delayed, then expired | Single contact, temporary | Wait for retries; resend later |
| 6. Message blocking active | Yes, explicit error | Single contact | Switch channels; inform recipient |
| 7. Opt-out list | Suppressed before sending | Single contact | Respect it; recipient can text START |
| 8. Content triggers | Mixed | One template or campaign | Change one message element at a time |
| 9. Throughput and queuing | Delays, occasional failures | Large sends | Spread sends; upgrade throughput |
How to Work the Problem
When delivery problems surface, resist the urge to guess. Pull the delivery receipts and error codes for the affected messages first; explicit errors immediately separate causes 2, 4, and 6 from the silent causes. If receipts look clean but recipients report nothing arriving, you are in silent-filtering territory: test-send each active template to real handsets on the major carriers and audit registration and content. If failures cluster around big sends, look at throughput. If they cluster on individual contacts, look at blocks, opt-outs, and invalid numbers. A structured pass through the nine causes almost always finds the answer; for the deeper deliverability playbook, see our guide to why your texts are not landing.
Frequently Asked Questions
Why is my message not sending to one specific person?
Single-contact failures usually come down to an invalid or changed number, a landline, the person having blocked your number, message blocking on their account, or their presence on your opt-out list. Check for explicit error codes first, then confirm the number and their opt-in status.
Why do my texts say delivered but the person never got them?
A "delivered" receipt means the carrier accepted the handoff, not that the message rendered on the phone. Silent carrier filtering and handset-level blocking can both produce this pattern. Test with a fresh message to a known-good device, and audit your content and registration if it reproduces.
Do text messages expire if the phone is off?
Yes. The carrier's SMSC stores undelivered messages and retries for a validity period, typically ranging from hours to a few days depending on the carrier. If the phone stays off past that window, the message expires and is never delivered.
Why are all my business texts suddenly failing?
A sudden, across-the-board failure usually points to a systemic cause: unregistered or misregistered 10DLC traffic, a reputation collapse triggering aggressive filtering, or a platform or number configuration change. Start with your registration status and your provider's error logs rather than individual contacts.
Can I fix carrier filtering myself?
Largely, yes. Complete accurate 10DLC registration, send only to opted-in contacts, identify your organization in every message, replace link shorteners with branded URLs, and ramp volume gradually. Filtering is a reputation system, and clean practices rebuild reputation over time.
Fewer Failures, More Conversations
FRANSiS is built to keep messages arriving: registered sending, list hygiene, opt-out handling, and delivery tracking in one place, with its AI Powered Helper answering replies so engagement stays strong and filters stay friendly. Contact us for a walkthrough.


