← Back to blogsms compliance

Why Your Business Text Messages Get Silently Filtered

August 21, 2026 · Android Texter

Why Your Business Text Messages Get Silently Filtered

You send a text, the platform marks it delivered, and the customer calls three hours later asking why you never followed up. You did. It just never showed up on their phone. If this only happened once you'd blame the carrier and move on, but if it's happening to a meaningful slice of your outbound, something structural is going on, and it has nothing to do with whether the phone was on.

This is carrier message filtering, and it's the most common reason business texts vanish without a bounce, an error, or any signal you did something wrong.

"Delivered" doesn't mean what you think it means

Close-up of a phone showing an SMS delivered status indicator in a messaging app Most SMS platforms report a delivery receipt (DLR) they get back from the carrier, and that receipt usually confirms only that the message reached the carrier's message center, not that it reached the handset. Bandwidth's DLR documentation draws this distinction directly: a carrier-level DLR means the network accepted the message for processing, while a handset-level DLR, which not all carriers even return, means it actually reached the device. A message can get marked "delivered" in your dashboard and still be sitting in a carrier's filter queue, or be silently dropped after that receipt was generated.

That gap is where most "the customer says they never got it" tickets live.

Silent filtering: what error 30007 actually tells you

Laptop screen showing rows of message log data on a cluttered desk If you send business SMS through a major aggregator like Twilio, Bandwidth, or one of the resellers built on top of them, you'll eventually see error code 30007, labeled "message filtered." Twilio's own documentation for the error states plainly that the message was blocked either by Twilio's own policy engine or by a wireless carrier, and that the error code does not tell you which one, or why. Twilio's recommended fix is to collect several examples and open a support ticket so a human can look at the pattern. There's no field in the API response that says "carrier flagged your content" versus "carrier decided your account looks like spam" versus "number is a landline." You just get a generic filtered status and have to reverse-engineer the cause.

The filtering itself is not arbitrary. Carriers run machine-learning systems that score outbound traffic on content and behavior, similar to email spam filters, and the CTIA's Messaging Principles and Best Practices, the industry framework carriers enforce as a condition of network access, lays out the categories that trigger it: message volume and velocity from a single number, content that resembles known spam patterns, high opt-out or complaint rates, and missing sender identification. None of that gets surfaced back to you in real time. The message just doesn't arrive, and your dashboard says it did.

Why some businesses get filtered more than others

If you're sending through the registered A2P 10DLC system, the amount of filtering you experience is tied directly to two things: your Trust Score and your Campaign classification. Twilio's documentation on throughput and Trust Score explains that a Standard Brand gets scored 0 to 100 during secondary vetting, and that score directly sets your messages-per-second ceiling. Low-trust senders get capped at a handful of messages per second; high-trust senders can send hundreds. If your registered use case falls into a content category carriers treat conservatively, you don't get denied outright, you get vetted into a lower throughput tier and a more aggressive content filter, and every message above that ceiling queues, delays, or drops.

This is why deliverability complaints cluster so heavily in certain industries. Android Texter's own product documentation, built from what operators in these verticals report, notes that payday and short-term lenders on registered A2P campaigns commonly see delivery rates in the 30 to 50 percent range with no appeal path once a campaign is approved but throttled, and real estate wholesalers sending prospecting texts to off-market homeowner lists often see under 20 percent of attempted messages land. Neither business is doing anything the carrier will tell you is against the rules. The traffic pattern, high volume from a business number to a list on a topic carriers score conservatively, is what gets filtered, independent of whether any individual message is compliant.

How to tell filtering from a dead number

Hands checking off a troubleshooting checklist on a notepad next to a phone Before you assume every "delivered, but they say they didn't get it" report is carrier filtering, rule out the boring explanations first:

  • One number, repeated failures. If it's the same recipient every time, check whether the number is a landline or has been reassigned. A landline can't receive SMS at all, and a carrier DLR for a landline destination can still come back as accepted by the network before failing downstream.
  • Many numbers, same pattern. If a meaningful percentage of sends to different people on the same campaign or same sending number fail to land, that's the signature of filtering, not bad data.
  • Timing. Filtering that kicks in after a burst of sends, or after your volume ramps up, points to velocity-based scoring rather than content.
  • Check for 30007 or an equivalent generic-filter code in your platform's message logs. If your dashboard doesn't expose delivery error codes at the individual message level, that's worth fixing before you diagnose anything else, because you're troubleshooting blind otherwise.

Where P2P texting sits outside this system

Everything above describes A2P 10DLC traffic: SMS sent through a registered business brand and campaign, which is what Twilio, Bandwidth, and most SMS platforms route by default. Person-to-person SMS, the kind sent from an individual's own phone number, isn't processed through that registration and vetting pipeline at all, because the carrier isn't looking at a business brand and a scored campaign, it's looking at a message from one consumer line to another, the same as any text you'd send a friend.

Android Texter routes messages through a phone the user actually owns, so outbound SMS goes out as P2P traffic on a real carrier line rather than through a registered A2P campaign. That doesn't mean every message is guaranteed to land. Carriers still watch for abusive volume on any line, business or personal, and multi-device support exists specifically so operators can spread outbound across several phones rather than pushing hundreds of messages a day through one number and tripping ordinary consumer-line velocity limits. What it does mean is that your messages aren't being scored against a use-case classifier and throttled to a tier based on what industry your campaign says you're in.

None of this touches the Telephone Consumer Protection Act. The TCPA governs who you can text and what you can say to them regardless of which pipe the message travels through, and it applies to P2P sends exactly as it applies to A2P ones. Getting a message delivered and having consent to send it are two different problems, and solving the first one does not touch the second.

Frequently Asked Questions

Why does my SMS platform say "delivered" if the customer never got the text?

Most platforms report the carrier-level delivery receipt, which confirms the message reached the carrier's network, not the handset. Handset-level confirmation isn't returned by every carrier, so "delivered" in your dashboard can mean the message was accepted for processing and then filtered or dropped afterward without your platform ever finding out.

What does error 30007 mean and can I fix it myself?

It means the message was blocked, either by your provider's own policy engine or by the destination carrier, and Twilio's documentation confirms the code itself doesn't say which. You can reduce it by cleaning your list, slowing send velocity, and avoiding flagged content, but a specific filtered message usually can't be resent successfully without changing something about the pattern that triggered it.

Does registering an A2P 10DLC campaign guarantee delivery?

No. Registration gets you a Trust Score and a throughput tier, not a delivery guarantee. Carriers still filter content and behavior on registered traffic, and low-trust or conservatively-classified campaigns get capped at low messages-per-second limits regardless of approval status.

If I switch to P2P texting, do I still need consent?

Yes. The TCPA applies to the content and consent basis of a text message, not the technical route it travels. P2P routing changes whether a carrier scores your traffic against a business-campaign filter; it does not change who you're allowed to text or what you need on file before you do.

Getting outbound that actually lands

If your delivery numbers are down and your platform can't tell you why, the first move is pulling your message logs for the actual error codes, not just the delivered/undelivered summary. If the pattern points to A2P filtering on a registered campaign in a conservatively-scored category, that's a structural problem the campaign approval itself won't fix. Android Texter routes outbound as P2P SMS from a real handset instead of a registered business campaign, which is why it's used by operators in verticals that get filtered hardest under A2P. It's not a way around the TCPA, and it won't help with a bad list or an angry recipient. It just means the carrier isn't scoring your message against a campaign classifier before deciding whether to let it through.