Why Are My Business Texts Not Delivering? SMS Deliverability Guide

"Customers aren’t getting our texts" is a symptom with exactly five root-cause families: registration blocks, carrier filtering, throughput queuing, bad destinations, and handset-side issues. Diagnosing by guesswork takes days; diagnosing by error code takes minutes. Here is the decision tree.

Step 1: Read the actual message status

In the Twilio Console (Monitor → Logs → Messaging), every message has a status and, if it failed, an error code. The status tells you which family you are in:

  • undelivered / failed with an error code → look the code up (families below).
  • queued / accepted for a long time → throughput or provider-side backlog.
  • sent but never delivered → downstream carrier or handset; no explicit rejection.
  • delivered but customer says nothing arrived → device-level filtering or wrong number.

Step 2: Triage by error family

Registration blocks

30034 (unregistered 10DLC number) is the big one: the number isn’t attached to an approved campaign. Fix via the 30034 guide. Toll-free cousins exist for unverified toll-free senders. These errors are absolute: 100% failure until registration is fixed.

Carrier filtering

30007 (message filtered) is registered traffic that a spam filter scored badly: content, links, list quality, or volume behavior. Partial and probabilistic (some messages pass, some don’t). Systematic fix in the 30007 guide.

Bad destinations

The 30003/30005/30006 family covers unreachable, unknown, or landline destinations. These are list-quality problems: validate numbers (a lookup API catches landlines and disconnects) and prune hard bounces automatically.

Throughput queuing

Messages that sit queued and deliver late are draining through your carrier rate limits: AT&T per-minute classes and T-Mobile daily caps. Not an error, but a launch-day disaster if unplanned. Fix by vetting up your brand tier, spreading sends, or shortening messages (segment math).

Will your website pass carrier review?

Paste your URL into our free AI scanner and get an instant PASS / WARN / FAIL compliance report. No signup needed.

Run a free compliance scan

Step 3: The silent failure modes

When statuses look fine but customers still report nothing:

  • Device-level filtering: modern iOS/Android route unknown senders into "junk"-style folders. Branded, expected, consistent content minimizes this; asking customers to save your number eliminates it.
  • Wrong or recycled numbers: the customer’s number changed hands; "delivered" went to a stranger. Periodic re-confirmation for critical notifications helps.
  • Opt-out suppression: the customer texted STOP months ago (perhaps to a different keyword) and your platform is correctly suppressing. Check the suppression list before debugging carriers.

Build the early-warning system

  1. Track delivery rate per send and per carrier. A drop isolated to one carrier is a filtering event; across all carriers, a registration or content event.
  2. Alert on error-code anomalies. Any 30034 in production means a number escaped the sender pool; a 30007 rate above ~1–2% means content drift.
  3. Watch opt-out and reply rates, the leading indicators of list fatigue that precede filtering.
  4. Test through real handsets on the three major carriers before each big send. It is a $30/month test-phone habit that catches template problems before 50,000 recipients do.

Deliverability is downstream of the same fundamentals as approval: registered correctly, consented lists, honest content, sane volume. Programs with those four never spend long in this guide.

Frequently asked questions

What is a good SMS delivery rate?

Registered 10DLC traffic to a clean, consented list typically delivers in the high 90s (%). Sustained rates below ~95% signal list-quality or filtering issues worth investigating; below 90% something is systematically wrong.

Why do my texts deliver to some carriers but not others?

Each carrier applies its own filters and limits. One-carrier failure patterns usually mean that carrier’s content filtering (see error 30007) or, on T-Mobile, an exhausted daily cap. Per-carrier delivery breakdowns in your logs isolate this quickly.

Can recipients’ phones block my messages without any error?

Yes. Device-level spam filtering happens after carrier delivery, so your logs show "delivered" while the message sits in a junk folder. Consistent branding, expected timing, and having customers save your contact reduce it.

Check your compliance before you submit

Most 10DLC rejections trace back to the sender's website: a missing SMS clause in the privacy policy, no visible opt-in language, mismatched business details. Our free AI scanner reads your site the way a carrier reviewer does and tells you what to fix.

Scan my website free No signup required  ·  Results in ~30 seconds

Related to this topic: