Skip to content
Save 20% on every snapshot, funnel and workflowBrowse the catalogue
Setup & Integration

Fix HighLevel SMS Delivery Errors: A Diagnostic Order That Works

SMS not sending in GoHighLevel? Work through the causes in the order that finds the problem fastest: A2P status, number attachment, opt-outs, content and carrier filtering.

Callum RhodesUpdated6 min read
Fixing SMS delivery errors in HighLevel

Key takeaways

  • A2P registration status is the first thing to check, and usually the answer.
  • A number not attached to an approved campaign sends unregistered traffic that gets filtered.
  • Selective failure points at content or recipient state, not configuration.
  • Shortened links are the single most common content trigger for carrier filtering.
  • Error 30007 is carrier filtering; 21610 is the recipient having opted out.
Contents
  1. Check these in order
  2. 1. A2P registration status
  3. 2. Number attached to a campaign
  4. 3. The contact opted out
  5. 4. Message content triggering filters
  6. 5. Wallet balance and account state
  7. Reading the error codes

Most GoHighLevel SMS failures are A2P registration problems, and the rest are content problems. The frustrating part is that failures are often silent: the workflow shows as executed, the message shows as sent, and nothing arrives.

Working through causes in the right order finds the problem in minutes rather than an afternoon. This is that order.

Check these in order

OrderCheckSymptom it explains
1A2P brand and campaign approvedNothing sends at all, to anyone
2Number attached to an approved campaignNothing sends from one specific number
3Contact opted out or marked DNDOne contact never receives anything
4Message content triggering filtersSome messages fail, others succeed
5Wallet balance or account stateEverything stops abruptly, all channels

The single most useful diagnostic question: does nothing send, or do some messages send? Nothing means configuration, which is checks 1, 2 and 5. Some means content or recipient state, which is checks 3 and 4. That one question halves the search space.

1. A2P registration status

If you are sending to United States or Canadian numbers from a 10-digit long code, brand and campaign registration must be approved. Not submitted, approved.

Check the trust centre in the sub-account. You are looking for two separate approvals: the brand, which verifies the business identity, and the campaign, which covers the use case. Brand approval usually lands in one to three business days. Campaign review has been running around 10 to 15 days through 2026 on volume.

If the campaign is rejected, the rejection reason tells you what to fix, and it is usually one of a short list: a privacy policy that is missing or unreachable, opt-in language absent from the page you cited, or sample messages with no opt-out instruction. Our A2P registration guide covers the fixes in detail.

2. Number attached to a campaign

Approval alone is not enough. Each phone number must be attached to an approved campaign, and a number attaches to exactly one campaign at a time.

This is the failure that catches agencies. The brand is approved, the campaign is approved, everything looks green, and a number provisioned last week was never attached. It sends unregistered traffic that carriers filter.

Check every number in the sub-account, not just the one you think is being used. Workflows can send from a different number than you expect if the sending number is set at workflow or user level.

3. The contact opted out

If one specific contact never receives anything while others do, check their DND status on the contact record.

Opt-outs happen more quietly than people expect. A contact who replied STOP at any point, to any number in the account, is suppressed. So is anyone marked DND manually or by a workflow. Carriers also maintain their own suppression, so a contact can be blocked at carrier level without any record in your account.

Do not work around this. Re-adding an opted-out contact is a compliance violation in most jurisdictions, and it is exactly the behaviour that gets a campaign deregistered.

4. Message content triggering filters

When some messages deliver and others do not, the content is the variable. Carriers filter aggressively and they do not explain themselves.

TriggerWhyFix
Shortened linksHeavily associated with spam and phishingUse full URLs on your own domain
Public link shortenersShared reputation with every other userUse a branded domain if you must shorten
ALL CAPS wordsClassic promotional signalWrite normally
Excessive punctuationSameOne exclamation mark at most, ideally none
Prohibited categoriesCannabis, firearms, gambling, high-risk lendingCheck carrier rules for your industry first
No opt-out instructionExpected on marketing trafficInclude "Reply STOP to opt out"
Content mismatched to use casePromotional text on a notification campaignRegister a marketing campaign or change the copy

Shortened links are by far the most common cause. If you change one thing, change that.

5. Wallet balance and account state

If everything stopped at once across SMS and email, check the wallet before anything else. An empty LeadConnector wallet stops all metered sending immediately, and the failure gives no obvious signal inside a workflow.

This is especially common in SaaS Mode, where clients top up their own wallets. Enable auto-recharge and tell clients it exists, or you will spend your week diagnosing "the software is broken" tickets that are actually empty wallets.

Also worth checking: whether the sub-account is paused, and whether the number was released.

Reading the error codes

CodeMeaningWhat to do
30003Handset unreachablePhone off or out of coverage; usually transient
30005Unknown destinationThe number does not exist; clean the list
30006Landline or unreachable carrierCannot receive SMS; capture a mobile instead
30007Carrier filteringContent problem; see section 4
30008Unknown errorUsually carrier-side; retry, then investigate content
21610Recipient opted outDo not work around it
21612Route not availableOften A2P registration or number capability

30007 is the one you will see most and the one people misread. It is not a HighLevel fault and not an account fault. A carrier looked at the message and decided not to deliver it, which means the fix is in the content or the registration, not in the platform.

SMS workflows that ship paused

Every snapshot imports with its SMS workflows in draft, so you can configure and test the whole account during the A2P wait and switch it on the day approval lands.

Browse snapshots

Frequently asked questions

Why is my GoHighLevel SMS not sending?

In roughly four cases out of five it is A2P 10DLC registration: either the brand and campaign are not approved yet, or the phone number is not attached to an approved campaign. Check the trust centre in the sub-account before investigating anything else.

What does error 30007 mean?

30007 is a carrier filtering rejection: the carrier blocked the message, usually for content reasons. Common causes are shortened links, all-caps words, excessive punctuation, prohibited topics, or messages that look like unsolicited marketing to a recipient who never opted in.

Why do some messages send and others fail?

Selective failure almost always points at content or recipient state rather than configuration. If the account were misconfigured nothing would send. Look at what the failing messages have in common: a shortened link, a particular carrier, or contacts who previously replied STOP.

Can I send SMS while A2P registration is pending?

The send may be accepted but carriers filter unregistered traffic heavily, so delivery is unreliable and you get no useful visibility into what was blocked. Treat pending as not yet live and do not launch a campaign on it.

How do I fix messages going to spam folders?

SMS does not have a spam folder in the email sense. What happens is carrier filtering, which blocks the message outright. The fixes are the same as avoiding filtering: full URLs instead of shorteners, clear opt-in, an opt-out instruction, and content that matches your registered use case.

Sources

  1. HighLevel: A2P 10DLC campaign approval best practices
  2. Twilio: error and warning dictionary

Skip the build. Import a working GoHighLevel account instead.

Industry-ready snapshots with funnels, pipelines, calendars and automations already wired. Delivered within 24 hours, installable on every sub-account you manage.

Mentioned in this article

Keep reading

All articles