Error code

30034: US A2P 10DLC - Message from an Unregistered Number

What this error means

You sent from a US 10-digit long code that isn't sitting inside an approved A2P campaign, so the carrier gateway refused it.

Causes, most likely first

  1. Number is not in the Sender Pool of the Messaging Service tied to the approved campaign, the #1 real-world cause, and the one that bites after a number is bought post-approval.
  2. Brand or campaign registration is incomplete / not yet APPROVED.
  3. Sole Proprietor campaign: only one 10DLC number may be registered. Every extra number on that campaign stays unregistered and throws 30034 forever, no matter how long you wait.
  4. Number was attached recently and the async registration hasn't landed yet (~24h, live-verified).

Sole Proprietor limits

Twilio's A2P 10DLC documentation states two separate caps on a Sole Proprietor brand, and they are often confused with each other:

  • One campaign per brand. Twilio's A2P 10DLC overview lists the Sole Proprietor tier as "One Campaign per Brand".
  • One 10DLC number. Only one +1 10DLC number can be registered to a Sole Proprietor campaign. Additional numbers added to that campaign stay unregistered and keep failing.

Neither cap is a queue and neither clears with time. If the business has an EIN, it belongs in Standard or Low-Volume Standard registration instead, which changes both limits.

Sending while registration is still in progress

Twilio documents a stopgap for traffic that cannot wait for registration to complete: use a sender type that is not part of A2P 10DLC. Its documentation names a toll-free number, a short code, or Twilio Verify for verification use cases. This is a way to keep messages moving during registration, not a way around registration.

How to fix it

If your numbers are managed by a platform

If your numbers sit inside a reseller platform, for example LeadConnector numbers inside GoHighLevel, you do not have access to the Twilio Console, and the interface shows the rejection without the code. Ask that platform's support team for the Twilio rejection error code, in writing, before you change anything. You can also read it yourself from your browser, which is faster: see how to get the code.

The substance of the fix is yours to make: the business details, the website, and the opt-in flow described in the Twilio path all belong to you, not to the platform. Make those changes first, confirm they are live, then ask support to resubmit. A resubmission filed before the underlying facts change will fail again on the same reason.

If you own the Twilio account

Console → Messaging → Services → your Service → Sender Pool: confirm the exact number is listed. Confirm the Service has the approved campaign attached (Messaging → Regulatory Compliance → Campaigns, or Usa2p resource on the Service). If Sole Prop, strip the Sender Pool down to the single intended number. API: POST /v1/Services/{ServiceSid}/PhoneNumbers then poll the number's A2P registration status.

Timing and resubmission

Attachment is asynchronous: expect ~24 hours from attach to the number actually clearing 30034. Nothing "restarts" here, it's not a review, it's a propagation delay. Sole Prop 1-number limit is a hard cap, not a queue.

Two ways forward

Have it handled for you

A2P registration is handled for you on Growth at $597/mo and on Scale at $1,197/mo. Registration, resubmissions, and the compliance work behind them are included.

See Growth and Scale

Fix it yourself

Send your email and we will send the fix playbook for registration rejections.

Verified against Twilio documentation on 2026-08-10.