WhatsApp Messages Not Delivering? 10 Reasons & Fixes (2026)
If your WhatsApp campaign shows 'sent' but not 'delivered', the recipient may not be on WhatsApp, your number format may be wrong, the 24-hour window may be closed, or your template may be paused. Here are the 10 most common reasons and exactly how to fix each one.
Key Takeaways
- Distinguish sent (left your account), delivered (reached the phone), and read (opened) — they fail for different reasons.
- The most common causes are wrong number format, no opt-in, a closed 24-hour window with free-form text, and paused or rejected templates.
- Protect your quality rating: message only opted-in contacts, warm up new numbers gradually, and keep block rates low.
- Failed messages on PayPerWA are auto-refunded, so you never pay for undelivered messages.
- Pricing is always ₹0.20 (or $0.004) PayPerWA fee + Meta's per-message charge, with no subscription.
Why are my WhatsApp messages not delivering?
WhatsApp messages usually fail to deliver for one of ten reasons: the recipient is not on WhatsApp, the number is in the wrong format, they never opted in, the 24-hour service window has closed without a template, the user has blocked your business, your number hit its messaging limit or low quality rating, the template was paused or rejected, the recipient has no network, the message content was flagged, or there was a temporary Meta API outage.
The good news: every one of these has a clear fix. The first step is to understand which stage your message is stuck at. A message marked "sent" but never "delivered" is a completely different problem from one that bounced before it left your account. This guide walks through the message lifecycle, then through all 10 causes with the exact remedy for each.
On PayPerWA, every campaign has a live delivery report so you can see exactly where messages drop off, and failed messages are auto-refunded to your wallet so you never pay for what Meta could not deliver.
Sent vs delivered vs read: what each tick really means
Before you can fix a delivery problem you have to read the status correctly. WhatsApp reports four distinct states, and people routinely confuse the first two.
| Status | What it means | Who it depends on |
|---|---|---|
| Sent (one grey tick) | Meta accepted your message and assigned it a message ID (wamid). It has left your account. | You + Meta |
| Delivered (two grey ticks) | The message reached the recipient's phone. | Recipient's device + network |
| Read (two blue ticks) | The recipient opened the chat. | Recipient (and their read-receipt setting) |
| Failed | Meta could not deliver and returned an error code. | Varies by error |
Key insight: "sent" is not "delivered." If a campaign sits at sent and never advances, the issue is almost always on the recipient side (offline, not on WhatsApp, blocked you) rather than a billing or template problem. If it goes straight to failed, the issue is usually your number, format, opt-in, or template state. Knowing which one tells you which half of this list to read.
Reason 1: The recipient is not on WhatsApp
Why: You can only message a WhatsApp number. If a contact uses a phone that has never registered for WhatsApp, the message will fail or sit at sent forever.
Fix: Clean your list before sending. PayPerWA's delivery reports flag numbers that consistently fail to deliver so you can prune them. For large imports, run a small test campaign first and remove every contact that never reaches "delivered." Do not buy or scrape lists — they are full of dead numbers and tank your quality rating.
Reason 2: Wrong number format (missing country code)
Why: The Cloud API needs numbers in full international format with country code and no plus sign, spaces, or leading zeros. An Indian number stored as 098765 43210 or 9876543210 without 91 will be rejected.
Fix: Store numbers as 919876543210 (country code 91 + 10-digit number). PayPerWA normalises common formats on import, but verify a sample after any CSV upload. For international audiences, make sure every row carries the correct country code — see our opt-in guide for list hygiene tips.
Reason 3: The contact never opted in
Why: Meta requires that recipients of business-initiated messages have opted in. Sending to people who never agreed drives "block" and "report" rates up, which lowers your quality rating and eventually blocks delivery.
Fix: Only message contacts with a recorded opt-in (a checkbox, a keyword reply, a form). PayPerWA blocks sends to contacts marked optedIn = false. Read our full WhatsApp opt-in compliance guide to set this up correctly from day one.
Reason 4: The 24-hour window is closed (and you sent free-form text)
Why: Outside the 24-hour customer service window, you can only send pre-approved template messages, not free-form text. If a user last messaged you 30 hours ago and you try to send plain text, it fails.
Fix: Inside 24 hours of the customer's last message, you can send any message type. Outside it, you must use an approved template (Marketing, Utility, or Authentication). PayPerWA campaigns always use templates, so this mostly bites in 2-way inbox chats. When in doubt, send a template.
Reason 5: The user blocked your business
Why: If a recipient blocks your WhatsApp business number, your messages will no longer be delivered to them.
Fix: You cannot un-block yourself — only the user can. Reduce blocks at the source: message only opted-in contacts, keep frequency reasonable (see our best time to send guide), make every message useful, and always offer an easy opt-out. High block rates also drag down your quality rating, which hurts delivery to everyone else.
Reason 6: Messaging limit reached or low quality rating
Why: Meta assigns each number a messaging tier (e.g. 250, 1K, 10K, 100K, unlimited business-initiated conversations per rolling 24 hours). Hit the cap and further messages queue or fail. A "Low" quality rating can freeze your tier or restrict sending entirely.
Fix: Warm up gradually — don't blast 50,000 messages on a brand-new number. Send to engaged contacts first, keep block/report rates low, and your tier will climb automatically. If your quality drops to "Low," pause campaigns, fix your content and targeting, and let it recover before resuming. PayPerWA shows your current tier and quality so you are never flying blind.
Reason 7: The template was paused or rejected
Why: Meta monitors template performance. A template with high block rates can be paused (temporarily un-sendable) or even disabled. A template still pending or rejected by review cannot be sent at all.
Fix: Only send templates with status APPROVED. If a template is paused, switch to an alternative approved template and improve the paused one's content before it un-pauses. Avoid spammy phrasing, excessive emojis, and misleading offers. Keep two or three approved variants of important templates so one pause never stops a campaign.
Reason 8: Recipient is offline or has no network
Why: If the recipient's phone is switched off, has no data, or is in airplane mode, the message stays at "sent" until their device reconnects.
Fix: This usually resolves itself — WhatsApp holds the message and delivers it (typically within 30 days) once the device comes back online. There is nothing to fix on your end. Just don't mistake a temporarily offline recipient for a permanent failure and delete a good contact.
Reason 9: Content flagged or media too large
Why: Messages can fail if media exceeds size limits (images up to 5 MB, video and documents up to 16 MB on the Cloud API), if a media URL is unreachable, or if content trips a policy filter.
Fix: Compress media within limits, host it on a reliable public URL, and avoid prohibited content. Test the exact template (with its real media header) on your own number before launching to thousands.
Reason 10: Temporary Meta API outage or rate spikes
Why: Occasionally Meta's Cloud API returns transient 5xx errors or throttles requests, causing a batch of messages to fail temporarily.
Fix: Use a platform that retries with backoff rather than giving up. PayPerWA's worker enforces Meta's 80-messages-per-second rate limit and retries transient failures automatically; messages that genuinely cannot be delivered are auto-refunded so a Meta hiccup never costs you money. You can also check Meta's platform status page during a widespread incident.
How PayPerWA delivery reports and auto-refund help
Diagnosing delivery problems is far easier when the platform shows you the truth instead of a single "sent" number. PayPerWA gives you:
- Per-contact status — see exactly who reached delivered, read, or failed, with Meta's real error code surfaced rather than a vague "failed."
- Auto-refund — when Meta returns a failure, the cost (PayPerWA fee + Meta charge) is credited straight back to your wallet. You only ever pay for messages that actually go out.
- Quality and tier visibility — your current messaging limit and quality rating, so you know before you hit a wall.
- List hygiene signals — repeat-failing numbers get flagged so you can clean your list and protect your sender reputation.
Transparent pricing helps too: it is always ₹0.20 (or $0.004) PayPerWA fee + Meta's per-message charge, with no subscription. See pricing and the full Meta rate card.
A 5-minute delivery troubleshooting checklist
- Open the campaign's delivery report and read the actual status: sent, delivered, read, or failed.
- If many are stuck at "sent," suspect offline recipients or numbers not on WhatsApp — run a small test and prune dead numbers.
- If many "failed," check the error code: format, opt-in, blocked, or template state.
- Confirm your numbers are in full international format (e.g. 9198XXXXXXXX).
- Confirm the template status is APPROVED and not paused.
- Check your messaging tier and quality rating — pause if quality is "Low."
- Verify media size and that the template was tested on your own number.
- If it is widespread and sudden, check Meta's status page for an outage.
Frequently Asked Questions
Why does my WhatsApp message say sent but not delivered?+
How do I fix WhatsApp messages that keep failing?+
Can I send WhatsApp messages outside the 24-hour window?+
What is a WhatsApp messaging limit and how do I increase it?+
Does PayPerWA refund failed WhatsApp messages?+
Why are my messages delivered but never read?+
Can a wrong number format cause delivery failures?+
Ready to Start WhatsApp Marketing?
No subscription. No monthly fee. Just ₹0.20 per message.
PayPerWA Team
We build India's most affordable WhatsApp marketing platform. No subscriptions, no hidden fees — just 20 paisa per message.