WhatsApp message not delivered: six reasons and their fixes
Undelivered business messages come from six causes: the 24-hour window has closed, the number is not on WhatsApp, a billing block, a quality or spam limit, a template problem, or the recipient's phone being unreachable. Each has a different fix and guessing wastes time.
- Check whether it failed or is merely pending; they need opposite responses.
- Outside 24 hours you need an approved template, not a retry.
- A billing block stops everything outbound while inbound keeps working.
- Quality limits pause sending and recover with better targeting, not retries.
First, separate pending from failed
These look similar in a busy inbox and need opposite responses.
A pending message has been accepted by WhatsApp and is waiting for the recipient's device. It shows one tick. Nothing is wrong and the only correct action is to wait.
A failed message has been refused. It will never arrive, and something has to change before it can. Convo360 marks these distinctly and attaches the reason, because an agent who treats a failure as a delay will wait indefinitely for a reply that cannot come.
Before investigating anything else, establish which of the two you have. Half the time spent debugging delivery is spent on messages that were always going to arrive.
It is worth making this distinction visible to agents rather than only to whoever reads logs. An inbox that shows 'not delivered' with a reason, in the thread, means the person who needs to act is the person who already has the context.
The 24-hour window
The most common genuine cause. WhatsApp allows free-form messages only within twenty-four hours of the customer's last message. After that, only an approved template may be sent.
This catches teams working across a weekend, and it catches follow-ups. A customer writes on Friday evening, an agent replies on Monday morning, and the reply fails because the window closed on Saturday.
The fix is a template, not a retry. Keep two or three utility templates approved for exactly this: a follow-up on an open issue, a resolution notification, an appointment reminder. A business without a follow-up template will keep hitting this every week.
Note that the window is measured from the customer's most recent message, not from the start of the conversation. A long-running thread does not keep the window open; each customer message reopens it for another twenty-four hours, and the clock is silent about it until a send fails.
Numbers that cannot receive
Two variants, with different fixes.
- The number is not on WhatsApp. Common in India where a customer gives a landline, a second number they do not use, or a number that has changed hands. Nothing will ever deliver; reach them another way and correct the record.
- The number is wrongly formatted. Missing country code, extra zeros, or spaces. This is a data problem rather than a delivery one and is worth fixing at the source, usually a form or an import.
If a meaningful share of a broadcast fails this way, your contact list needs cleaning before the next campaign rather than after it. Failed sends to invalid numbers also do nothing for your quality rating.
Billing blocks and quality limits
Two account-level causes that stop delivery regardless of the message.
A billing block, error 131042, means Meta is refusing to send because of a payment problem on the WhatsApp Business Account. Inbound keeps working, which makes it look like a platform fault. It is fixed only in Meta Billing Hub, and from October 2026 it becomes much more likely because service conversations beyond 1,000 a month are charged.
A quality or spam limit, error 131048, means Meta has decided your recent sending looks like spam. Retrying makes it worse. Convo360 pauses a broadcast when it sees this, keeps the remaining numbers queued and retries on a backoff, which is the correct behaviour and the opposite of what a naive sender does.
Both of these are account-level, which is the useful clue. If one customer is failing, look at that customer. If everybody is failing at once, stop looking at conversations entirely and check the account, because nothing you change in a flow will help.
Template problems
A template that is not approved, has been paused for poor quality, or is being sent with the wrong number of variables will fail.
Template quality is separate from account quality. A specific template that people consistently block or report can be paused by Meta on its own, while the rest of your messaging continues normally. That is a useful signal: the template is the problem, not your business.
Variable mismatches are a self-inflicted version. If a template expects three variables and your campaign supplies two, every message fails. Convo360 validates this before sending rather than discovering it a thousand messages in.
Keep an eye on which templates carry your highest volume. A template that is paused for quality during a campaign takes the campaign with it, and the recovery is to improve targeting rather than to resubmit the same template under a new name.
A working diagnostic order
When messages are not arriving, check in this order. It takes about two minutes.
- Is it failed or pending? Pending needs patience, not investigation.
- Is it failing for every customer or for one? Every customer means an account problem.
- What is the error? Read it rather than inferring from symptoms.
- If it is 131042, fix billing. If 131048, stop sending and review targeting.
- If it is one customer outside the window, send a template.
- If it is one customer whose number is not on WhatsApp, correct the contact.
Working in that order stops the most common waste, which is reconfiguring webhooks and rotating AI keys in response to a billing problem. Nothing in your flows or your model settings causes a delivery failure.
Step by step
- Check failed against pendingOne tick means waiting for a device and needs no action. A failure has a reason attached and will never arrive on its own.
- Check the blast radiusFailing for every customer points at an account-level cause; failing for one points at that contact or that conversation.
- Read the error code131042 is billing, 131047 is the closed window, 131048 is a quality limit. Each has a different fix.
- Use a template outside the windowKeep two or three approved utility templates for follow-ups, so a Monday reply to a Friday message is never blocked.
- Clean the contact dataIf a broadcast fails widely on invalid numbers, fix the source form or import before the next campaign.
Diagnose delivery in two minutes
Start free in minutes — no code, no credit card. Bring your own AI keys and pay no per-message markup.
Frequently asked questions
Why do some messages deliver and others fail in the same campaign?
Usually because the recipients differ: some numbers are not on WhatsApp, some are wrongly formatted, and some conversations are outside the window. Account-level problems fail everything at once instead.
Should I retry a failed message automatically?
Only for transient network errors. Retrying a window failure, a billing block or a quality limit achieves nothing and, in the case of a quality limit, actively makes the situation worse.
How do I know the 24-hour window has closed?
Count from the customer's last message, not yours. Convo360 blocks a free-form send outside the window and prompts for a template, so it is caught before the message fails.
Can I message someone who has never contacted me?
Only with an approved template, and only if they have opted in. A free-form first message to a new contact will always fail, regardless of how you have the rest of your account configured.
What if delivery drops suddenly across all numbers?
Check your Meta account status first, specifically billing and quality rating. A sudden account-wide change is almost never caused by anything inside your messaging platform.
Related reading
Available across India — see WhatsApp & AI calling automation by state and city.