SMS deliverability
A2P 10DLC registration: why your texts aren't delivering (and how to fix error 30034)
Last updated August 13, 2026
Short answer
Since mid-2023, US carriers block SMS from local (10DLC) numbers that aren't registered to an A2P campaign. Twilio accepts your message, then kills it with error 30034 — so it shows "sent" in your app but never arrives. Voice calls work immediately on a new number; texting requires registration first. The fix: register a brand and campaign in the Twilio Console (Sole Proprietor takes about 15 minutes to submit, approval typically a few business days), or verify a toll-free number as a faster alternative.
The trap: "sent" doesn't mean delivered
This is the #1 support issue for new US Twilio users, and it's designed to be confusing. You buy a local number, calls connect fine, then you text a lead and… nothing. No error in your app, no bounce, no warning. The API returned success and the message status says sent.
What actually happened: Twilio accepted the message from your app (that's the "sent" status), handed it toward the carrier network, and the carriers refused it because the sending number isn't registered under the A2P 10DLC framework. Twilio then fails the message with error 30034 — downstream of everything your app sees. Unless you go looking in the logs, the failure is invisible, and cold-callers routinely text dozens of leads for days before noticing nobody ever replies.
A2P ("application-to-person") 10DLC is the US carriers' registration system for business texting from local 10-digit numbers. It rolled out through 2022–2023, and since roughly mid-2023 enforcement has been strict: unregistered traffic is blocked outright rather than throttled. Registration is done once, per business, through your carrier account — Twilio, in this case.
Step 1: confirm it's actually a registration problem
Don't guess — read the error code. In the Twilio Console go to Monitor → Logs → Messaging, click the message that didn't arrive, and look at the final status and error code. Four codes cover almost every "my texts aren't delivering" case:
| Error code | What it means | The fix |
|---|---|---|
| 30034 | Unregistered 10DLC number | The sending number isn't attached to an approved A2P campaign. Register (below) or text from a verified toll-free number. |
| 21608 | Trial account restriction | Trial accounts can only message verified recipient numbers. Upgrade the account or verify the recipient in the Console. |
| 30032 | Unverified toll-free number | Toll-free SMS requires its own verification. Submit toll-free verification in the Console; no brand/campaign needed. |
| 30007 | Carrier filtering (spam) | The number is registered but a carrier flagged the content or sending pattern. Slow down, personalize, include opt-out language. |
If you see 30034, keep reading — that's the unregistered-10DLC error this guide fixes. If you see 30007 on a registered number, your problem is content and sending pattern, not registration.
Step 2: register — the five-step walkthrough
The whole flow lives in the Twilio Console and takes about 15 minutes to submit on the Sole Proprietor path. Fees and timelines below are typical figures — carriers and Twilio adjust them periodically, so treat exact amounts as approximate and check the Console's current numbers as you go.
Open the A2P 10DLC section
Twilio Console → Messaging → Regulatory Compliance → A2P 10DLC (Twilio occasionally moves this in the nav — search "A2P" in the Console if you don't see it). Everything happens here: brand, campaign, and number assignment.
Register a brand: Sole Proprietor or Standard
Sole Proprietor is for individuals and businesses without an EIN — a small one-time registration fee (typically a few dollars), no tax documents, but capped throughput (roughly a few thousand message segments per day across major carriers) and a limit of one campaign. Standard Brand requires an EIN whose legal name matches IRS records exactly, costs a somewhat larger one-time fee, and unlocks higher throughput based on your vetting score. For a solo cold-caller sending follow-up texts, Sole Proprietor is almost always the right call; register Standard when you have an EIN and real volume.
Create a campaign
A campaign describes what you send: pick a use case (e.g. "Low Volume Mixed" or "Sales & Marketing"), write a plain-English description, and provide 2+ sample messages that look like what you'll actually send — include opt-out language ("Reply STOP to opt out") in at least one sample and describe how recipients consented. Vague descriptions and samples that don't match the use case are the top rejection reasons. Campaigns carry a small monthly carrier fee (typically a couple of dollars, varying by use case).
Attach your phone numbers
Assign the Twilio numbers you text from to the approved campaign (via a Messaging Service or directly, depending on your setup). Registration follows the number-to-campaign link — a number you buy later must also be attached before it can text.
Wait for approval, then test
Sole Proprietor campaigns are typically approved within a few business days; Standard can take from days to a couple of weeks depending on vetting. When the campaign shows approved and the number is attached, send a test text to your own phone and confirm the message log shows "delivered" — not just "sent" — with no error code.
Sole Proprietor vs Standard Brand at a glance
| Sole Proprietor | Standard Brand | |
|---|---|---|
| Requires EIN | No — personal name and address | Yes — must match IRS records exactly |
| One-time cost | Small (typically a few dollars) | Larger one-time brand + vetting fees (tens of dollars) |
| Throughput | Low — roughly a few thousand segments/day | Higher, scales with vetting score |
| Approval time | Typically a few business days | Days to a couple of weeks |
| Best for | Solo callers, 1:1 follow-up texts | Registered businesses with real SMS volume |
What to do while you wait for approval
- Keep calling. A2P 10DLC is an SMS framework only — voice is completely unaffected, and your number dials fine from day one. Most cold outreach is calls anyway; the texts are follow-up. (While you're at it, ramp the number properly — see warming up a new number.)
- Verify a toll-free number instead. Toll-free numbers sit outside 10DLC entirely — they need their own (simpler) verification, no brand or campaign, and approvals often land in days. A verified toll-free number is a legitimate long-term texting channel, not just a stopgap, though some recipients treat toll-free texts as less personal than a local number.
- Don't keep texting from the unregistered number. Every message fails with 30034 and you may still be charged for the attempt. Pause SMS until the campaign is approved.
Registration is not consent
A2P 10DLC tells carriers who you are so they'll deliver your messages. It says nothing about whether you're legally allowed to text a given person — that's the TCPA, which requires prior express consent (written, for marketing texts), honored opt-outs, and time-of-day limits. Cold texting a purchased list is a TCPA problem even with a fully approved campaign. Full breakdown in the DNC & TCPA compliance guide.
Texting at wholesale once you're registered
Registration is the painful part; the economics afterward are excellent. Because DialSheet runs on your own Twilio account, SMS costs wholesale — about $0.0079 per outbound segment (plus small per-message carrier fees), with calls at ~$0.014/minute and numbers at ~$1.15/month. There's no per-message markup from a dialer vendor sitting between you and the carrier, and the A2P registration you just completed belongs to you, not a platform. DialSheet itself is free up to 500 leads with 3 seats; Pro is $29/month per 3-seat pack — never per-user. See the full Twilio cost breakdown or the setup tutorials to get the Twilio connection running.
Common questions
How long does A2P 10DLC registration take?
Typically a few business days end to end for the Sole Proprietor path — brand verification is often quick, and campaign approval by the carriers' vetting partner usually takes anywhere from a day to about a week. Standard Brand registrations with an EIN follow the same shape but can take longer if the business details don't match IRS records exactly. Timelines vary by queue depth and how clean your submission is; a rejected campaign (vague use case, missing opt-out language in samples) restarts the clock.
Can I text from a Twilio number without registering for A2P 10DLC?
Not to US recipients from a local 10-digit number — since mid-2023, US carriers block A2P traffic from unregistered 10DLC numbers, and Twilio fails those messages with error 30034. The two working alternatives are a verified toll-free number (a lighter verification process, no brand/campaign required) or a short code (expensive, aimed at high-volume senders). International destinations and voice calls are unaffected by 10DLC rules.
Does A2P 10DLC apply to toll-free numbers?
No — 10DLC stands for 10-digit long code, meaning local numbers. Toll-free numbers have their own separate verification process: unverified toll-free SMS is blocked (Twilio error 30032), but once verified, a toll-free number can text US recipients without any brand or campaign registration. Toll-free verification is often approved in days and is a common fallback while a 10DLC campaign is pending.
Why does my Twilio message show "sent" but never gets delivered?
Because Twilio accepts the message from your app first and only then hands it to carriers — the API returns success, the status moves to "sent", and the failure happens downstream. Check Monitor → Logs → Messaging in the Twilio Console and open the individual message: an error code of 30034 means the sending number isn't registered to an A2P 10DLC campaign; 30007 means a carrier filtered it as spam; 30032 means an unverified toll-free number. The "sent" status is about handoff, not delivery — always read the final status and error code.
Do I need A2P 10DLC registration to make phone calls?
No. A2P 10DLC is an SMS/MMS framework only — voice calling from a brand-new Twilio number works immediately with no registration. That's why the typical failure pattern is "calls work, texts silently vanish." Voice has its own separate reputation ecosystem (spam-likely labeling, STIR/SHAKEN attestation), but none of it blocks you from dialing on day one.
Does A2P 10DLC registration mean I'm allowed to text anyone?
No — registration and consent are separate requirements. A2P 10DLC registers who you are and what you send so carriers will deliver your messages; TCPA consent governs who you may legally text. You still need prior express consent (written consent for marketing texts) from each recipient, working opt-out handling, and time-of-day compliance. A registered campaign that texts people without consent is both a legal risk and a fast route to carrier filtering.
Call today, text when approved
DialSheet is a free power dialer and CRM that runs on your own Twilio account — start calling your list today while your A2P campaign is in review, then switch on SMS follow-up at wholesale rates the day it's approved. Free up to 500 leads with 3 seats; Pro is $29/month per 3-seat pack, never per-user.