← All Articles

How to Stop Twilio SMS Throttling and Carrier Filtering (2026 Guide)

You wired up Twilio for sales follow-up, the first messages went through — then the queue backed up, error 30007 hit the logs, and recipients went quiet. This is the diagnostic checklist for the two failure modes that look identical from the outside: throttling and carrier filtering.

30007
the error that means the carrier filtered it
1 MPS
standard Twilio account throughput
3 fixes
registration, content, ramp — the whole game
$1,000+
per month for a high-throughput short code
Bottom line up front
  • Almost every case is missing 10DLC registration, filter-tripping content, or a too-fast volume ramp.
  • Error 30007 means the carrier blocked it — not Twilio.
  • Sole Proprietor brands filter hardest — upgrade to a Standard Brand as volume grows.

Throttling vs. carrier filtering: they look the same, they are not

Most “Twilio is broken” tickets are not actually Twilio’s fault. There are two different failure modes, and the fix depends on which you have.

SymptomThrottlingCarrier filtering
Where it happensTwilio queue (your account)Carrier network (T-Mobile, AT&T, Verizon)
Error codeMessages sit in queued longer than expected30007 (filtered) or 30003 (unreachable)
Status flowqueuedsent, eventuallysentfailed or undelivered
FixHigher MPS tier or batch pacingA2P 10DLC, content cleanup, sender reputation

Step 1: A2P 10DLC — the cause of most filtering

This is the single most common cause of carrier filtering in 2026. Skip registration entirely and Twilio fails US-bound traffic outright with error 30034 — the unregistered-traffic error our A2P 10DLC guides walk through; half-finish it and carriers filter you no matter how clean the content is. In the Twilio Console under Messaging → Regulatory Compliance → A2P 10DLC, verify:

  1. Your Brand is approved — not “Pending” or “Failed”
  2. Your Campaign is registered with the right use case
  3. Every sending number is linked to the campaign
  4. Your sample messages match what you actually send
  5. Your opt-in flow matches your website or signup form

Step 2: Content — write like a person, not a phisher

Even with 10DLC done correctly, carrier ML filters read the message itself. The same text, written two ways:

What carrier filters see
Gets filteredURGENT: Your FREE quote is waiting!! Click here: bit.ly/2xQq…
✗ All-caps keywords, public URL shortener, “click here,” no sender name — four filter patterns in one message
Hi [Name], it’s [Rep] at [Company]. Here is the quote you asked about — happy to walk through the numbers whenever suits.
✓ Named sender, natural language, no shortener — reads like a person, not a campaign
[Company]: your appointment is confirmed for Tue 10am–12pm. Reply 1 to confirm, 2 to reschedule.
✓ Transactional, sender identified, actionable — the shape carriers deliver without a second look

The patterns that trigger filtering in 2026: public URL shorteners (bit.ly, tinyurl, t.co), money keywords without context (“free money,” “wire transfer,” “loan approved”), “click here” with no context, all-caps words like URGENT or FREE, messages that never name the sender (T-Mobile specifically requires sender identification), and identical copy-paste templates to many recipients in a short window.

Quick test: if your message looks like something a phisher might send, it will be filtered. Write like a real person who knows the recipient.

Step 3: Ramp over four weeks, not four minutes

WEEK 1 50–100/day WEEK 2 200–500/day WEEK 3 1,000+/day WEEK 4+ ✓ steady at your target Carriers score reputation over time — a fresh number that spikes to 1,000/day reads as spam.

If you need to scale faster than the curve, distribute across multiple registered numbers from day one rather than spiking one number’s volume.

Step 4: Pace sends to your MPS limit

Standard accounts start at 1 message per second. Fire 100 messages in one second and 99 sit in the queue — they go out eventually, but if you have a quiet-hours window or promised “confirmation in seconds,” the delay matters. Registered 10DLC campaigns can request 3, 10, or more MPS depending on campaign type and trust score; toll-free numbers typically get 3 MPS; short codes buy real throughput at $1,000+/month; and Twilio support escalates verified high-volume use cases.

If your application sends in bursts, build a queueing layer that paces sends to your MPS limit rather than firing the API as fast as your CPU can. The whole pattern is a dozen lines:

queue = pending_messages()
interval = 1 / account_mps          # 1 MPS → one send per second
loop every interval:
    msg = queue.pop()
    if in_quiet_hours(msg.recipient_timezone):
        requeue(msg, at=next_8am_local(msg))   # TCPA window, not just politeness
        continue
    twilio.send(msg)
    record(msg.sid, msg.status)     # you will want these SIDs for support tickets

Step 5: Read per-carrier delivery — T-Mobile tells on you first

Twilio’s Insights dashboard breaks delivery down by carrier. If T-Mobile sits at 60% delivered while AT&T and Verizon are at 95%, the problem is carrier-specific:

T-Mobile — the strictest enforcer

Aggressive 10DLC enforcement, a content-driven UCE filter, and hard daily segment caps on Sole Proprietor brands far below Standard. Your exact cap is brand-specific: it is shown in the campaign’s T-Mobile section of the Console (Messaging → A2P 10DLC → your campaign) — look it up there, because any figure a blog quotes will be wrong for your brand tier.

AT&T — lenient on Standard, hard on Sole Proprietor

Standard Brands get more slack; Sole Proprietor traffic still gets filtered. If you registered as Sole Proprietor and volume is growing, upgrade the brand.

Verizon — somewhere between

Falls between the other two on strictness. If Verizon delivery drops while others hold, look at content and volume ramp before registration.

The diagnostic checklist (save this)

When messages stop landing, work through this in order:

  1. What is the Twilio status: queued, sent, failed, undelivered?
  2. If failed or undelivered — what error code? Look it up in Twilio’s error reference.
  3. Is A2P 10DLC fully registered, with the sending number linked to an approved campaign?
  4. Does the content avoid shorteners, money keywords, all-caps, and “click here”?
  5. Is volume within the ramp curve for the number’s age?
  6. Is the application respecting the MPS limit, or firing too fast?
  7. Is the failure carrier-specific (check Insights)?
  8. Can you prove the recipient opted in (timestamp + source)?

Most teams find their issue in steps 1–3. If all 8 check out and traffic is still filtered, open a Twilio ticket with the message SIDs and campaign info — they can see things you cannot.

The iMessage alternative

A2P 10DLC, carrier reputation, content filtering, and ramp curves are all problems specific to application-to-person SMS over US cellular carriers. They do not exist on iMessage, because iMessage is Apple’s proprietary protocol and routes through Apple’s infrastructure, not the carriers. One honest caveat: a message to an Android recipient falls back to ordinary SMS from the rep’s own number — still person-to-person traffic rather than A2P, so the registration regime does not attach, but at that point it is riding the carrier network like any other text.

This is why field sales reps increasingly run follow-up through iMessage from their own iPhones: the message comes from the rep’s actual number, recipients see a normal text from a person they know, and there is no registration paperwork or filtering to debug. FollowUp takes this approach on its Pro tier — sequences run through iMessage on the rep’s own iPhone — while the Business tier uses a dedicated Twilio number with A2P 10DLC handled for you. Get the iOS app.

Frequently asked questions

What does Twilio error code 30007 mean?

Error 30007 means the message was filtered by the carrier, not by Twilio. The carrier blocked it before delivery to the handset. Common causes: missing A2P 10DLC registration, the message content tripped a carrier spam filter, the recipient’s carrier flagged the sending number for prior abuse reports, or the sending number is on a blocklist.

How do I fix Twilio SMS throttling?

First, identify whether the issue is Twilio throttling (queue rate limits on your account) or carrier filtering (handled at the carrier level). Twilio throttling is solved by upgrading your account tier or requesting a higher MPS limit. Carrier filtering requires A2P 10DLC registration, fixing message content, ramping volume gradually, and resolving any abuse reports against your sending number.

Do I need A2P 10DLC registration in 2026?

Yes. A2P 10DLC registration is required for any business sending application-to-person SMS to US recipients on standard 10-digit long codes. As of 2026, all major US carriers enforce 10DLC and unregistered traffic faces severe filtering or outright blocking. There is no grace period anymore.

Can I avoid A2P 10DLC by sending from iMessage?

Yes. iMessage is Apple’s proprietary protocol and does not route through US cellular carriers, so A2P 10DLC does not apply. This is one reason field sales reps using personal iPhones to send SMS via iMessage avoid the throttling and filtering problems that plague Twilio-based stacks.

What is the right messages-per-second limit for Twilio?

Standard Twilio accounts start at 1 MPS. Higher tiers and registered A2P 10DLC campaigns can request higher limits (3, 10, or more MPS depending on campaign type). The throttle exists to prevent abuse spikes; trying to send 1,000 messages in a few seconds will queue them and may trigger carrier-side rate limiting on top of Twilio’s queue.