Twilio error 30034 ("US A2P 10DLC: Message from an Unregistered Number") means exactly one thing: you sent to a US number from a +1 local (10DLC) number that is not associated with an approved A2P campaign, and Twilio blocked it before carriers would. Since full enforcement began in February 2025 this block is total: unregistered traffic does not degrade, it fails. The good news is that the cause is always one of three things.
Cause 1: You haven’t completed registration (or it isn’t approved yet)
The obvious case: no brand, no campaign, or a campaign still pending/failed. Sending only works once the campaign status is approved; "submitted" is not enough.
Fix: complete the registration flow (Trust Hub profile → brand → campaign) and wait for campaign approval. Check status under Console → Messaging → Regulatory Compliance. Review takes days to weeks, so plan launches accordingly.
Cause 2: The number isn’t in the campaign’s sender pool (the most common surprise)
This is the one that catches people with approved campaigns: the campaign is approved, but the specific number you sent from is not in it. Campaign association happens through a Messaging Service’s Sender Pool. Numbers you bought later, or numbers you send from directly via a bare from parameter, are not covered automatically.
Fix:
- Console → Messaging → Services → your service → Sender Pool.
- Add every 10DLC number that sends campaign traffic. New numbers must be added here each time.
- In code, send via
messagingServiceSid(the MG… SID) instead of a raw from-number, so routing always goes through the registered service. - Allow a few minutes for the association to propagate, then retest.
Cause 3: Multiple numbers on a Sole Proprietor campaign
Sole Proprietor campaigns allow exactly one 10DLC number. If you added a second number to the service’s pool, messages from it throw 30034 even though "the campaign is approved".
Fix: keep a single number on the campaign. If you genuinely need more, get an EIN and upgrade to a Standard-family brand.
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 scanDiagnostic quick-check
- Campaign approved? Console → Regulatory Compliance → campaign status must be approved, not pending/failed.
- Number in pool? Messaging Service → Sender Pool contains the exact number from the failed message.
- Sending via the service? The failed message’s details show which sender was used; bare from-numbers outside a pool are the classic miss.
- Right number type? 30034 concerns +1 10DLC local numbers; toll-free numbers have a separate verification path, and an unverified toll-free number fails differently.
While you wait for approval
There is no compliant way to send 10DLC traffic before approval. That is the point of the enforcement. If you have urgent transactional traffic and a pending campaign, a verified toll-free number can bridge the gap (its verification is often faster), after which traffic moves to the 10DLC number. What does not work: rotating unregistered numbers, which accumulates failures and account risk.
Once 30034 is resolved, deliverability problems change shape: registered messages that carriers filter show error 30007 instead (a content problem, not a registration one). And if your messages show delivered but customers report nothing arriving, see the broader deliverability guide.
Frequently asked questions
Does error 30034 mean my campaign was rejected?
Not necessarily. It means the specific sending number isn’t currently associated with an approved campaign. Check whether the campaign is approved, and if so, whether the number is in the Messaging Service sender pool tied to that campaign.
I added the number to my Messaging Service. Why do I still get 30034?
Verify the Messaging Service is the one actually linked to the approved campaign (a common mix-up with multiple services), give the association a few minutes to propagate, and confirm your code sends through that service’s SID rather than a different from-number.
Do I get charged for messages that fail with 30034?
Twilio blocks these before carrier handoff and does not charge standard message fees for the blocked segments. Your campaign’s monthly fees, however, run regardless of send volume.