Troubleshooting

Klaviyo SMS not delivering — carrier and consent diagnostics

Why Klaviyo SMS sends stop reaching subscribers — consent gaps, E.164 formatting, A2P 10DLC registration, carrier filtering, and abandoned-cart classification — with the fix for each.

Published


title: "Klaviyo SMS not delivering — carrier and consent diagnostics" description: "Why Klaviyo SMS sends stop reaching subscribers — consent gaps, E.164 formatting, A2P 10DLC registration, carrier filtering, and abandoned-cart classification — with the fix for each." slug: "klaviyo-sms-not-delivering" publishedAt: "2026-05-19" updatedAt: "2026-05-19" painCluster: 8 intent: 8 tier: 2 faq:

  • q: "Why is my Klaviyo SMS not delivering?" a: "The most common cause is incomplete consent — a profile has a phone number on file but never explicitly opted in to SMS, so Klaviyo silently suppresses the send. Other frequent causes: numbers not in E.164 format, an unregistered toll-free or 10DLC number, or carrier filtering triggered by message content classified as marketing instead of transactional."
  • q: "What is A2P 10DLC and do I need to register?" a: "A2P 10DLC (Application-to-Person 10-Digit Long Code) is the US carrier framework for business SMS. If you send marketing or transactional SMS through a US long code, you must register your brand and campaigns. Klaviyo walks you through registration in Settings → SMS. Sending unregistered will get your throughput throttled or your messages blocked entirely."
  • q: "Why are my abandoned cart texts blocked when marketing texts deliver fine?" a: "Carrier filtering classifies messages by content. Abandoned-cart messages often contain urgency language ('don't miss out,' 'last chance') and discount codes — patterns carriers associate with spam. If your marketing texts use cleaner language and your cart-recovery texts don't, the cart messages can be filtered at the carrier level even though the marketing ones pass."
  • q: "What is E.164 formatting and why does Klaviyo require it?" a: "E.164 is the international standard for phone numbers: country code + national number, with no spaces, dashes, or parentheses. A US number stored as (555) 123-4567 won't send; the same number stored as +15551234567 will. Klaviyo's import flow tries to normalize, but malformed numbers from custom integrations sometimes bypass that and silently fail to deliver."
  • q: "Why did my SMS delivery suddenly drop overnight?" a: "Three usual causes: a carrier violation triggered by a recent campaign (spam complaints, unsolicited sends to non-consented numbers), a 10DLC campaign that lapsed in registration status, or a sudden volume spike that breached your throughput ceiling. Check Settings → SMS → Registration status first, then Account Settings → Compliance for any violation flags."
  • q: "Can I send SMS to UK or international customers from Klaviyo?" a: "Yes, but it requires separate sender configuration for non-US regions. Each country has its own consent and regulatory requirements — the UK requires explicit opt-in under PECR, the EU under GDPR. Klaviyo handles this through region-specific sender numbers; check Settings → SMS → Senders for your enabled regions."
  • q: "Will Klaviyo notify me if my SMS sends are being blocked?" a: "Klaviyo shows delivery status per message and flags hard failures, but it doesn't proactively alert on patterns — for example, a 20% drop in delivery rate across all sends in a single day. Detecting that pattern is one of the always-on monitoring gaps." related:
  • klaviyo-texas-sms-compliance
  • klaviyo-vs-postscript
  • klaviyo-vs-attentive-sms

SMS that doesn't deliver is a worse failure mode than email that doesn't deliver. Email has soft bounces, retries, and visible status codes. SMS has carrier filtering — opaque, irreversible, and often invisible until you look at delivery rates and notice they've quietly dropped from 95% to 60% over the course of a week.

The difference is that SMS delivery sits behind regulation: A2P 10DLC in the US, PECR in the UK, GDPR-derived consent rules in the EU, and an emerging patchwork of state laws in the US (Texas, Florida) that add their own compliance layers. A Klaviyo SMS send that fails can fail at any of those layers, and the failure surface in Klaviyo's UI is narrower than for email.

This page walks the failure modes in order from "most operators hit this" to "regulatory edge case." If you're in the middle of a delivery outage, start with the diagnosis checklist.

Quick diagnosis checklist

  • Settings → SMS → Registration status. Confirm your toll-free and 10DLC numbers are fully registered and the campaigns are approved. Pending or rejected registration = throttled or blocked delivery.
  • Pick a recent send. Open the delivery report. Klaviyo shows per-message status: delivered, failed, pending, blocked. If a meaningful share of your sends are failing or blocked, you have a carrier problem.
  • Check a sample of profiles that didn't receive the SMS. Does each one have a phone number? Is each phone number E.164-formatted? Does each profile have explicit SMS consent (not just an email subscription)?
  • Open Analytics → Metrics → Consented to Receive SMS Marketing. Are new opt-ins still landing? If the event volume has dropped recently, your form or signup flow may have broken.
  • Check whether the message content was flagged. Look at the campaign's text. Aggressive marketing language ("URGENT," "LAST CHANCE," "$$$"), shortened URLs from suspicious shorteners, and lengthy promo codes can trigger carrier filters.
  • For US sends, check 10DLC campaign approval. Settings → SMS → Campaigns. Each campaign must be approved by carriers. Unapproved campaigns are blocked.

1. The profile has a phone number but no SMS consent

This is the silent killer. A profile imported from a Shopify checkout has a phone number captured for shipping purposes — but the customer never explicitly opted in to SMS marketing. Klaviyo correctly refuses to send marketing SMS to that profile, but the UI doesn't make this obvious; the profile just appears as "no SMS sent" in the campaign report.

How to verify. Pick a profile that should have received an SMS but didn't. Open the profile. Look at the SMS consent status — it should read "Subscribed" with a timestamp. If it reads "Never subscribed" or "Not subscribed," that's the issue.

How to fix it. You can't bypass consent. The profile needs to opt in through a Klaviyo form, a Shopify checkout SMS opt-in checkbox, or another explicit consent surface. Don't try to import consent that wasn't given — Klaviyo's terms prohibit it and carriers will eventually flag the behavior.

The structural fix. Audit your signup surfaces. Make sure every place that captures phone numbers also captures explicit SMS consent. Shopify's checkout SMS-opt-in checkbox is the single highest-leverage one — enabling it converts a meaningful share of email-only subscribers into SMS subscribers over time.

2. Phone numbers aren't in E.164 format

E.164 is the international standard: a plus sign, country code, and national number, with no spaces, dashes, or parentheses. +15551234567 is valid. (555) 123-4567 is not. 5551234567 is ambiguous (no country code) and will fail.

How to verify. Pick a profile with an SMS delivery failure. Look at the phone number field. If it's not E.164-formatted, the format is the issue.

How to fix it. Klaviyo's UI accepts US-style formats and normalizes them at save time. But profiles imported via CSV or pushed via the API can bypass that normalization if the integration doesn't handle formatting. Audit your import sources — particularly any custom integration or third-party app pushing profiles to Klaviyo — and verify they're converting to E.164 before push.

The trap. For non-US numbers without a country code, Klaviyo can't guess. A UK number stored as 7700 900123 looks like it might be valid, but without +44, it isn't routable. Always require the country code on input.

3. Your 10DLC or toll-free registration is incomplete

A2P 10DLC is the framework for sending business SMS from US 10-digit numbers. Carriers require brand registration and per-campaign registration before they'll route messages reliably. Klaviyo's onboarding walks you through this, but if you onboarded before 10DLC enforcement, or if you added a new number recently, registration may be incomplete.

How to verify. Settings → SMS → Registration status. Each number you send from should show "Approved" status for both brand and campaign registration. "Pending" means messages will throttle. "Rejected" means messages will block.

How to fix it. Complete the registration through Klaviyo's onboarding. Brand registration typically takes 1-2 business days; campaign approval takes another 1-3. Sending to unregistered or pending numbers in the meantime risks delivery degradation that lingers even after approval.

Why this gets ignored. Registration is paperwork, and paperwork gets put off. The consequence isn't immediate — sends still mostly go through during the pending period. But once enforcement kicks in (typically a few weeks after the registration deadline), throttling becomes severe.

4. Carrier filtering is blocking the content

Carriers run their own content filters on incoming SMS, independent of registration status. If your message looks like spam — aggressive marketing language, suspicious link shorteners, excessive use of caps — it can be filtered at the carrier level even on a fully-registered number.

How to verify. Take a sample of recent campaign sends. Compare delivery rates by campaign. If one campaign's delivery rate is materially lower than others, look at the content differences. Common triggers: all-caps subject lines, multiple exclamation points, bit.ly or similar shortened URLs, mention of "$$$" or "FREE!"

How to fix it. Rewrite the message to look like normal communication. Use your own branded domain in links rather than a shortener. Limit emoji and exclamation marks. Keep the message under 160 characters where possible (longer messages get more scrutiny).

A note on cart abandonment. Abandoned cart texts are particularly vulnerable to carrier filtering because their natural language pattern ("Don't forget your items! 15% off if you finish checkout") overlaps with spam patterns. If your cart-abandon texts are delivering at a lower rate than your marketing campaigns, this is almost certainly why.

5. The send classification is wrong

SMS in the US is classified into marketing and transactional categories. Transactional messages (order confirmations, shipping updates) have different consent requirements and carrier treatment than marketing messages. Misclassification causes messages to be routed through the wrong channel.

How to verify. Look at the flow or campaign settings. Check the message-type classification. An abandoned cart message classified as "transactional" is incorrectly classified — it's marketing, by US regulatory definition. Klaviyo defaults are usually correct, but custom configurations sometimes get this wrong.

How to fix it. Reclassify in the flow or campaign settings. Note that reclassifying may require different consent (transactional consent doesn't always cover marketing), so verify your opt-in surfaces match the new classification.

6. Texas, Florida, or another state law is geo-blocking

Several US states have passed SMS laws with significant per-message penalties (Texas: up to $5,000 per violation; Florida: up to $1,500). If you don't have geo-exclusion in place for these states, you face real legal exposure — but the immediate symptom is often that Klaviyo flags or suppresses sends to those state's profiles.

How to verify. Check your account's compliance settings. See if any state-level exclusions are configured. If they're not, and you have profiles in those states, you should configure them — this is a regulatory issue, not just a delivery one.

How to fix it. Configure state-level exclusions in your SMS flows and campaigns. For Texas specifically, the rules are strict enough that many operators choose to exclude Texas entirely from marketing SMS rather than navigate the requirements. (See Klaviyo Texas SMS compliance for the full breakdown.)

How to verify the fix

After any change:

  1. Send a test SMS to yourself. Verify it arrives within a minute.
  2. Check the delivery rate on the next campaign send. It should be 95%+ for US sends with full registration; 85%+ for international.
  3. Sample a few profiles that didn't receive the SMS. Confirm each has consent, a properly-formatted number, and isn't in a geo-excluded region.
  4. Monitor the delivery rate daily for the next week. A delivery rate that holds steady = the fix worked.

Why this keeps happening

SMS sits on top of multiple regulatory and infrastructural layers, each of which can fail independently. Registration lapses. State laws change. Carriers update their content filters. Customers churn out of consent without explicit unsubscribe. Each layer has its own status surface, and Klaviyo's UI doesn't aggregate them into a single "your SMS is healthy" signal.

Detecting drift at any of those layers — a registration that expired, a delivery rate that dropped, a consent-event volume that fell — is what hourly monitoring is for. SMS is a high-stakes channel; the cost of a week of unnoticed delivery degradation is real. We watch the signals so you don't have to.

Frequently asked questions

Why is my Klaviyo SMS not delivering?
The most common cause is incomplete consent — a profile has a phone number on file but never explicitly opted in to SMS, so Klaviyo silently suppresses the send. Other frequent causes: numbers not in E.164 format, an unregistered toll-free or 10DLC number, or carrier filtering triggered by message content classified as marketing instead of transactional.
What is A2P 10DLC and do I need to register?
A2P 10DLC (Application-to-Person 10-Digit Long Code) is the US carrier framework for business SMS. If you send marketing or transactional SMS through a US long code, you must register your brand and campaigns. Klaviyo walks you through registration in Settings → SMS. Sending unregistered will get your throughput throttled or your messages blocked entirely.
Why are my abandoned cart texts blocked when marketing texts deliver fine?
Carrier filtering classifies messages by content. Abandoned-cart messages often contain urgency language ('don't miss out,' 'last chance') and discount codes — patterns carriers associate with spam. If your marketing texts use cleaner language and your cart-recovery texts don't, the cart messages can be filtered at the carrier level even though the marketing ones pass.
What is E.164 formatting and why does Klaviyo require it?
E.164 is the international standard for phone numbers: country code + national number, with no spaces, dashes, or parentheses. A US number stored as (555) 123-4567 won't send; the same number stored as +15551234567 will. Klaviyo's import flow tries to normalize, but malformed numbers from custom integrations sometimes bypass that and silently fail to deliver.
Why did my SMS delivery suddenly drop overnight?
Three usual causes: a carrier violation triggered by a recent campaign (spam complaints, unsolicited sends to non-consented numbers), a 10DLC campaign that lapsed in registration status, or a sudden volume spike that breached your throughput ceiling. Check Settings → SMS → Registration status first, then Account Settings → Compliance for any violation flags.
Can I send SMS to UK or international customers from Klaviyo?
Yes, but it requires separate sender configuration for non-US regions. Each country has its own consent and regulatory requirements — the UK requires explicit opt-in under PECR, the EU under GDPR. Klaviyo handles this through region-specific sender numbers; check Settings → SMS → Senders for your enabled regions.
Will Klaviyo notify me if my SMS sends are being blocked?
Klaviyo shows delivery status per message and flags hard failures, but it doesn't proactively alert on patterns — for example, a 20% drop in delivery rate across all sends in a single day. Detecting that pattern is one of the always-on monitoring gaps.