TCR Vetting Systems Operational
MyTCRPlus Guide

Twilio Error 30007 and 30008: Message Filtered and Unknown Error Fixes

Twilio error 30007 (message filtered) and 30008 (unknown error) explained: what causes each, how to diagnose undelivered texts, and fixes for 10DLC senders.

READ TIME: 9 MIN SECTION: GUIDE UPDATED: OCT 2026

Twilio error 30007 means your message was filtered: blocked by Twilio's spam filtering or by a wireless carrier. Twilio error 30008 means a carrier or downstream provider returned a generic delivery failure without enough detail to classify it. Both show up as failed or undelivered messages in your Messaging logs, but they have different causes and different fixes. This guide explains each error, how to tell them apart from related codes, and what to change so your texts get through. MyTCRPlus is an independent 10DLC compliance diagnostic platform: it is not a CSP, does not send SMS, and is not affiliated with Twilio or The Campaign Registry.

Short answer: For 30007, treat it as a content or compliance problem: confirm the sending number is on an approved 10DLC Campaign, make the message match the registered use case, remove URL shorteners and spam-like wording, and check consent. For 30008, check the individual recipient first (handset off, roaming, carrier path), retry later, and only investigate content if the failures cluster on one carrier or message template.

What Error 30007 Means

Twilio describes 30007 as "Carrier error 30007: Message filtered". The message was blocked either by Twilio's filtering, for violating its Messaging Policy or Acceptable Use Policy, or by a wireless carrier's filter for violating carrier rules. Twilio lists two possible causes: the message was identified as spam or unwanted messaging by Twilio's filtering system, or a wireless carrier flagged it as objectionable and blocked it. See Twilio's error 30007 reference.

For US A2P traffic, carrier filters look at the sender's registration status, the content, links, volume patterns and complaint signals. 30007 is the error you see when that filtering decides against your message.

What Error 30008 Means

Twilio describes 30008 as "Carrier error 30008: Unknown error": a generic delivery failure from a carrier or downstream provider with not enough detail to classify it more specifically. Twilio lists causes such as the handset being off or unable to receive SMS at delivery time, the device roaming or off network, an issue isolated to a specific handset or carrier path, the destination network not accepting the sender (especially alphanumeric sender IDs abroad), and message length, concatenation or encoding problems. See Twilio's error 30008 reference.

Code Twilio name What it usually points to First check
30003 Unreachable destination handset Phone off, out of coverage, or unable to receive Retry later; check the number
30004 Message blocked Recipient blocked the sender or replied STOP Check opt-out records; do not resend
30005 Unknown destination handset Number does not exist or is no longer active Clean the list
30006 Landline or unreachable carrier Number cannot receive SMS Validate number type before sending
30007 Message filtered Content, registration or compliance filtering Registration status and content
30008 Unknown error Generic carrier failure Recipient-specific causes, then patterns
30034 Message from an unregistered number Sending US A2P traffic from a 10DLC number not on an approved Campaign Register or attach the number to a Campaign

If you see 30034 alongside 30007, fix registration first; see unregistered traffic blocking.

Common Causes of 30007 for 10DLC Senders

  1. Number not on an approved Campaign. The number is unregistered, the Campaign is still pending, or it was attached to the wrong Messaging Service.
  2. Content outside the registered use case. Promotions sent on a customer care Campaign, or new message types never declared in samples.
  3. Public URL shorteners. bit.ly-style links are strongly associated with spam. Use full links on your own domain. See URL shortener restrictions.
  4. Restricted content. SHAFT categories, cannabis, high-risk lending, or lead generation without the right Campaign type and age gating.
  5. Spam-like wording. All caps, excessive punctuation, "FREE!!!", urgency pressure, or text that mimics bank or delivery-scam patterns.
  6. No sender identification. Messages that never name the business look like phishing.
  7. Undeclared phone numbers or links. Numbers or domains in messages that were not declared in the Campaign.
  8. Complaints and opt-outs. High STOP rates and spam reports raise filtering risk.
  9. Volume spikes. Sudden bursts well above your normal pattern, or traffic spread across many numbers to avoid limits (snowshoeing).

How to Fix Error 30007

  1. Confirm registration. In the Twilio Console, check that the sending number belongs to a Messaging Service with an approved A2P 10DLC Campaign. If not, register or attach it. See Twilio 10DLC registration.
  2. Compare the failed message with your Campaign. Does it match the use case and samples you registered? If you started sending a new type of message, update the Campaign or register a new one.
  3. Rewrite the content. Name the business at the start, remove shorteners and spam triggers, and keep opt-out text on marketing messages. Run it through the SMS Message Validator.
  4. Check consent. Make sure every recipient opted in to this kind of message. Remove purchased or scraped numbers.
  5. Slow down. Send at a steady rate within your Campaign's limits instead of large bursts.
  6. Test with a small batch of known, opted-in handsets on different carriers before resuming full volume.
  7. Escalate with evidence. If filtering continues on compliant content, open a ticket with Twilio including message SIDs, the Campaign ID and sample content.

How to Fix Error 30008

  1. Look at the pattern. Is the failure isolated to a few numbers, one carrier, one template, or one time window?
  2. Isolated numbers. The handset may be off, roaming or full. Retry later with a sensible backoff, and stop after repeated failures.
  3. One carrier. If failures concentrate on one carrier, compare against 30007 behavior: carrier-side filtering can surface as generic errors. Review content and registration as for 30007.
  4. One template. Check length, encoding and special characters. Emoji and non-GSM characters switch encoding to UCS-2 and shorten the segment size, which increases concatenation. Simplify and retest.
  5. Validate numbers. Use a lookup to confirm the number is mobile and active before sending.
  6. Escalate with message SIDs if the failures persist on valid, reachable handsets.

Prevent Filtering Before It Starts

  • Register the Brand and Campaign accurately and keep content inside the declared use case. See 10DLC registration for small businesses.
  • Keep opt-in records for every recipient; see SMS consent documentation.
  • Send an opt-in confirmation, honor STOP immediately, and answer HELP.
  • Use branded full links on your domain.
  • Monitor delivery rates by carrier and template every week; a drop is your early warning.
  • Read carrier filtering algorithms for how AT&T, T-Mobile and Verizon evaluate traffic.

Example: Rewriting a Filtered Message

Filtered:

FLASH SALE!!! 50% OFF everything TODAY ONLY → bit.ly/x7Yz

Rewritten:

Oak Outfitters: Our fall sale is on, 50% off jackets through Sunday. Shop: oakoutfitters.com/fall Reply STOP to opt out.

The rewrite names the brand, removes all caps and the shortener, uses a full branded link and includes opt-out text. It still needs to be sent on a Campaign registered for marketing.

Monitoring Delivery: Metrics to Watch

Metric Healthy signal Warning signal
Delivery rate Stable week to week Sudden drop on one carrier
30007 share of failures Rare Rising after a content or volume change
30008 share Scattered across recipients Concentrated on one carrier or template
Opt-out rate Low and steady Spikes after a campaign
Reply rate Normal for your program Near zero on content that used to perform

Track these per Campaign and per message template so you can trace a filtering spike back to the change that caused it. See TCR health checks for a fuller monitoring routine.

When It Is Not a Twilio Problem

Every CSP surfaces carrier filtering in its own way. If you send through another provider, the same causes apply under different codes. The CPaaS guides cover provider-specific registration: CPaaS guides.

Diagnosing Failures in the Twilio Console

  1. Open Monitor > Logs > Messaging and filter by status "Undelivered" or "Failed" and by error code.
  2. Group failures by sending number, Messaging Service, destination carrier and message body. A failure that follows the body points to content; one that follows the sending number points to registration; one spread thinly across recipients points to handset-level causes.
  3. Open a single message and read the delivery events. Note the message SID for any ticket you raise.
  4. Check the Messaging Service. Confirm which A2P Campaign the number belongs to and whether the Campaign status is approved.
  5. Check the time window. Filtering that starts right after a new campaign launch, a template change or a volume increase is almost always caused by that change.
  6. Use status callbacks in your application so failures are logged with the error code automatically and you can alert on rising rates.

Message Encoding and Segments

SMS messages are split into segments. Messages using only GSM-7 characters fit 160 characters in a single segment (153 per segment when concatenated). A single emoji or other non-GSM character switches the whole message to UCS-2 encoding, which fits 70 characters in a single segment (67 per segment when concatenated). Longer, multi-segment messages cost more and give carriers more parts that can fail to reassemble. When 30008 errors cluster on one template, remove emoji and smart quotes, shorten the text, and retest.

Worked Examples

Example 1: Clinic reminders filtered after a change. A clinic's reminders delivered normally for months. After the team added a shortened link to an intake form, failures with 30007 rose on one carrier. Replacing the shortener with a full link on the clinic's domain and declaring that link in the Campaign samples restored delivery.

Example 2: Retailer marketing on a care Campaign. A retailer registered a customer care Campaign for order updates and later started sending weekly promotions from the same numbers. Promotions failed with 30007 while order updates still delivered. Registering a separate marketing Campaign, attaching dedicated numbers and collecting marketing consent at checkout fixed the split.

Example 3: Scattered 30008 on a large list. A service company saw a small, steady share of 30008 failures spread across many recipients and carriers, with no content pattern. Number validation showed many were inactive or unreachable. Cleaning the list and adding retry limits brought failures down without any content change.

Error Codes and Your Customers

If you send on behalf of clients (an agency, platform or ISV), share failure data with them by error code, not as a single "failed" count. Clients can fix content and consent issues behind 30007 themselves once they see which templates are filtered, while 30008 failures on scattered numbers usually call for list hygiene rather than rewrites. Give each client a short guide to the codes above and a monthly delivery report by carrier. Pair it with the rejection code directory for registration-stage errors, so registration problems and delivery problems are not confused.

FAQ

What does Twilio error 30007 mean?

The message was filtered (blocked) by Twilio's spam filtering or by a wireless carrier, usually for content, registration or policy reasons.

What does Twilio error 30008 mean?

A carrier returned a generic delivery failure without a specific reason. Causes range from an unreachable handset to carrier-path or encoding problems.

Can I fix 30007 by sending from more numbers?

No. Spreading traffic across numbers to avoid filters is snowshoeing, which carriers prohibit. Fix registration and content instead.

Why are my texts not delivering after 10DLC approval?

Content may not match the registered use case, links may be shortened, recipients may have opted out, or volume may have spiked. Check failures by code and carrier.

Is 30007 the same as 30034?

No. 30034 means the 10DLC number is not registered to an approved Campaign. 30007 means a message was filtered, which can happen even on registered numbers.

Should I retry messages that failed with 30007?

Not unchanged. Fix the cause first; resending the same filtered content usually fails again and can worsen filtering.

Does a high trust score prevent 30007?

No. A higher score can raise throughput limits, but content and consent problems are still filtered.

Disclaimer

Informational only. Error definitions summarize Twilio's public documentation, which can change; check the current Twilio error dictionary. MyTCRPlus is not affiliated with Twilio, carriers or The Campaign Registry.

// Ready To Go Live?

BOOK YOUR TCR SOLUTIONS DISCOVERY CALL

KEEP READING

// MyTCRPlus Academy

GET CERTIFIED.
STOP REJECTIONS.

24 industry-specific compliance courses for 10DLC, TCR, TCPA, and HIPAA. Prove your expertise. Protect your business.

Browse All 24 Courses →

// Flagship Certifications

// Industry SMS Compliance Courses · 20H · $197 Each

HEALTHCARE

HIPAA & Healthcare SMS Compliance

PHI identifiers, SMS PHI-safe design, and HIPAA-compliant patient messaging workflows.

$197 · ENROLL →

HEALTHCARE

Healthcare & Telehealth SMS Compliance

Dual HIPAA/TCPA compliance for healthcare providers and telehealth platforms.

$197 · ENROLL →

INSURANCE

Insurance Provider SMS Compliance

Seller-specific consent, multi-state compliance, and TCR/TCPA for carriers and agents.

$197 · ENROLL →

AUTOMOTIVE

Automotive Dealership SMS Compliance

Multi-rooftop consent, BDC risk, and service-lane TCPA compliance for dealerships.

$197 · ENROLL →

FINANCE

Financial Services SMS Compliance

Account consent, debt collection rules, and TCR/TCPA for banks, lenders, and financial institutions.

$197 · ENROLL →

REAL ESTATE

Real Estate Messaging Compliance

Agent consent management, portal compliance, and TCPA rules for brokers and real estate platforms.

$197 · ENROLL →

E-COMMERCE

E-Commerce & Retail SMS Compliance

Checkout consent flows, retargeting risk, and TCR/TCPA for retail and e-commerce brands.

$197 · ENROLL →

FRANCHISE

Franchise & Multi-Location SMS Compliance

Consent responsibilities, franchisor oversight, and TCR for multi-location franchise systems.

$197 · ENROLL →

SAAS

SaaS & Software SMS Compliance

User consent, platform liability, and TCR/TCPA compliance for SaaS platforms and software companies.

$197 · ENROLL →

ENTERPRISE

Enterprise Marketing SMS Compliance

Multi-brand consent architecture and large-scale TCR/TCPA compliance for enterprise marketing operations.

$197 · ENROLL →

HOSPITALITY

Hospitality & Travel SMS Compliance

Guest consent, loyalty program messaging, and TCPA compliance for hotels, resorts, and travel brands.

$197 · ENROLL →

LEGAL

Legal Services Messaging Compliance

Intake consent, bar association rules, and TCPA compliance for law firms and legal services providers.

$197 · ENROLL →

EDUCATION

Education & EdTech SMS Compliance

Student consent, FERPA considerations, and TCPA compliance for educational institutions and EdTech platforms.

$197 · ENROLL →

NON-PROFIT

Non-Profit & Political Campaign SMS Compliance

Donor consent, P2P messaging exemptions, and TCPA rules for nonprofits and political organizations.

$197 · ENROLL →

STAFFING

Staffing Agency SMS Compliance

Candidate consent, employer compliance, and TCR/TCPA for staffing and recruiting agencies.

$197 · ENROLL →

EVENTS

Event Ticketing SMS Compliance

Guest consent flows, multi-venue operations, and TCPA compliance for event and ticketing organizations.

$197 · ENROLL →

B2B

Business Services SMS Compliance

B2B consent requirements, field operations compliance, and TCR/TCPA for B2B service providers.

$197 · ENROLL →

PARTNERS

TCR MSP Revenue Program

Training for MSPs and technology partners on building TCR compliance revenue streams and client services.

$197 · ENROLL →

// Stop guessing. Start messaging.

ELIMINATE TCR
REJECTION RISK TODAY

SMB & Enterprise businesses achieve up to 90% approval rates with our diagnostic tools and carrier-validated templates.