Message Sent but Not Received: Step-by-Step WhatsApp Diagnosis
AndySendy academy
← All posts

🔍 Contact exists, message sent - but the client sees nothing. Why

"Success in CRM, but the client says they got nothing" - not a glitch, and not the only scenario. A "vanished" message has at least five causes, and blocking is just one. After this article you'll know what to diagnose and in what order - instead of blaming a mythical ban.


The main mistake in how people read the problem

Start by separating concepts the niche often mixes up:

  1. Message accepted by CRM or grey software - command left your tool.
  2. Message accepted by WhatsApp server - one grey tick.
  3. Message delivered to recipient device - two grey ticks.
  4. Message read - blue ticks (if not disabled).
  5. Message displayed and decrypted - what the client actually saw on screen.

A log with "Success" in CRM or grey tooling is step 1, not step 5. The tool records that WhatsApp Web accepted the command. Everything else is outside its control. Meta does not give external systems confirmation that the message was decrypted on the recipient's device.


Five reasons a message didn't arrive

1. Recipient blocked your number

Classic scenario. Meta's server accepts the message, assigns one grey tick, and stops forwarding. Content is destroyed. Even if they unblock you later - everything sent during the block is gone and never "catches up."

Diagnosis: open the chat manually on your phone. If one tick persists and the contact avatar is missing (default grey icon) - high chance they blocked you. More on when one tick isn't a block in a separate article.

2. You blocked this contact yourself

Less obvious. If you once blacklisted the number on your phone, then try to send a trigger via grey API - nothing gets through. CRM shows "Success", phone sends, server blocks.

Diagnosis: open the chat manually on your phone. If WhatsApp shows "Unblock this contact to send a message?" - you blocked them.

Mini-case. An operator blocked an annoying client via the phone UI. A week later the same client submitted a form - CRM auto-sent a trigger via API. Panel status: success. Client got nothing. Manual check immediately showed: number on the operator's phone blacklist. Zero messages delivered until unblock.

3. Recipient-side issue: no network, no app

One tick doesn't always mean block. Phone off, no internet, app removed, SIM change without account transfer - same visual result. Especially common with cold lists scraped months ago.

Diagnosis: wait 24–48 hours. If status doesn't move from one tick to two - the problem is persistent; dig deeper.

4. Encryption key sync failure

WhatsApp uses Signal Protocol end-to-end encryption. Session change, WhatsApp Web reconnect, or Multi-Device update can desync crypto keys. The message physically reaches the recipient's phone but the device can't decrypt it.

What recipient sees: system banner "Waiting for this message. This may take a while." Sender sees normal status - two ticks.

This can last 24–48 hours until devices exchange new keys. Not a ban, not a block - a sync artifact.

Mini-case. Marketer launched a blast right after re-scanning QR. First 200 recipients saw empty threads with "Waiting for this message." Software logs: two ticks, "delivered." No text on client devices.

5. Grey integration or WABA errors

Unofficial APIs may misparse WhatsApp internal errors, showing green "Sent" in the UI. Heavy media and unstable Web connections create log vs reality gaps.

Official WABA is clearer: if Meta blocked or paused the template mid-blast, the message gets Failed in Webhooks with a specific error code. But the CRM UI may still show "sent" - if integration doesn't handle those codes.


Manual diagnosis algorithm

Check order when symptom is "contact exists, message didn't arrive":

Step 1. Open the problematic chat on a physical smartphone.

Step 2. Try sending manually:

Step 3. Check integration logs. If tool shows Success but you see one tick - tool only records command handoff, not delivery.

Step 4. For WABA: check Webhooks for error codes (Undeliverable, Failed, Structure Unavailable). More reliable than CRM UI.

Step 5. Check if WhatsApp Web session was refreshed before the blast. If yes - possible mass key desync.


Tracking undelivered in outreach

Good blast analytics track more than "sent" - at least four statuses:

Status Meaning Action
Sent Accepted by WhatsApp server Wait for delivery
Delivered On recipient device OK
Read Read OK
Undelivered One tick 24–72 h Diagnose → Suspected Blocked
Error / Failed API/WABA error code Check template, session, integration

Don't delete Undelivered contacts immediately - some recover. Move to a segment, recheck in 7–14 days, then decide on exclusion. See three-tier labeling logic in a dedicated article.


What not to do


🎯 Next step

Take a few recent chats where clients complained about non-delivery and run Steps 1–5. Five to ten minutes - and you'll know: systemic issue, local session glitch, or one contact with phone off.

Conclusion

Practical rule:

"Sent" in logs is not "received" on the client side. Five levels in between - and the message can fail at any of them.