WhatsApp error 131026 ("Message undeliverable") means Meta accepted your API request but could not deliver the message, because the number is not on WhatsApp, the recipient has not accepted WhatsApp's latest Terms of Service and Privacy Policy, or they are on a very old app version. You fix it by cleaning the number (correct +91 format, real WhatsApp user, with opt-in), not by resending: retrying the same number gives the same failure.
If your broadcast report shows many 131026 failures, the cause is usually the list, not your template or account. This guide covers what Meta's documentation says about 131026, how it differs from 131049, 131047 and 131050, and how Indian businesses can bring the failure rate down.
What error 131026 means, according to Meta
According to Meta's developer documentation (Cloud API error codes), 131026 is listed as "Unable to deliver message". Meta lists these possible reasons:
- The recipient phone number is not a WhatsApp phone number. The number may be a landline, a disconnected SIM, a typo, or simply a person who never installed WhatsApp.
- The recipient has not accepted the new Terms of Service and Privacy Policy. WhatsApp has the account, but the user has not gone through the latest terms prompt.
- The recipient is using an old WhatsApp version. Meta lists minimum versions: Android 2.21.15.15, SMBA 2.21.15.15, iOS 2.21.170.4, SMBI 2.21.170.4, KaiOS 2.2130.10 and Web 2.2132.6.
Meta's suggested solution is to contact the person through a non-WhatsApp channel (SMS, email, a phone call) and ask them to confirm they can send a message to your WhatsApp Business number, confirm they have accepted the latest terms (Settings > Help, or Settings > Application information, prompts them if they have not), and update to the latest WhatsApp version.
Every reason Meta lists sits on the recipient's side, and Meta does not give a separate code for each, so a 131026 alone does not tell you which applies. For bulk campaigns, "not a WhatsApp number" is the usual one.
One common confusion: some blogs list "the user is part of an experiment" as a 131026 cause. In Meta's current error table, that is a separate code, 130472 ("Message was not sent as part of an experiment"), tied to Meta's marketing message experiment. If you see 130472, it is not a list problem.
131026 vs 131049, 131047, 131050 and other codes
Many teams treat every failure as "WhatsApp blocked my message". The fix depends on the code, so read it before acting. For the full list, see our guide to WhatsApp Business API error codes. The ones that most often appear next to 131026 in Indian campaign reports are below, described as Meta's documentation describes them.
| Code | What Meta says | Whose side | What to do |
|---|---|---|---|
131026 | Unable to deliver message: not a WhatsApp number, new terms not accepted, or old app version | Recipient / your data | Verify the number and opt-in; ask the user via another channel to update WhatsApp |
131049 | Not delivered "to maintain healthy ecosystem engagement" (per-user marketing template limits) | Meta's per-user limit | Wait at least 24 hours before resending the marketing template; do not retry immediately |
131047 | More than 24 hours have passed since the recipient last replied | Your send logic | Send an approved template instead of a free-form message |
131050 | Recipient has chosen to stop receiving marketing messages from your business | Recipient's choice | Do not retry; subscribe to the user_preferences webhook to track stop/resume |
131048 | Restrictions on how many messages this number can send, possibly because too many previous messages were blocked or flagged as spam | Your number's quality | Check quality status in WhatsApp Manager; slow down and fix targeting |
131000 | Message failed to send due to an unknown error | Unclear | Try again; if it persists, open a Direct Support ticket with Meta |
130472 | Message was not sent as part of an experiment | Meta's marketing experiment | See Meta's Marketing Message Experiment page |
The practical split: 131026 is a "this number cannot receive it" problem, while error 131049 (healthy ecosystem) is a "this person has had enough marketing for now" problem. The first needs list cleaning; the second needs patience and better frequency.
Why Indian campaigns see high 131026 rates
When a large share of a broadcast fails with 131026, the list usually came from somewhere other than customers who gave their WhatsApp number to that business. Common sources in India:
- Purchased or scraped databases. "Bulk data" sold by city or industry, numbers scraped from directories, and exported group-member lists. These contain old SIMs, landlines and numbers never registered on WhatsApp.
- Old CRM or billing exports. A POS or ERP may hold numbers from years ago. Numbers that go unused can be disconnected by the operator and later reissued, so an old record may now be a dead number or belong to someone else.
- Landline numbers in the "mobile" column. Shop and office numbers with STD codes often end up in contact sheets. Unless that landline is registered on WhatsApp Business, it will fail.
- Formatting damage. Excel turning numbers into scientific notation, a leading 0 kept from STD dialling, a missing or doubled 91, or two numbers pasted in one cell.
- Typing errors at collection. Walk-in forms and call-centre entries with one wrong digit.
Here is an illustrative example (not real data): a list of 1,000 numbers bought from a "Pune retailers" database might contain a large share of landlines and inactive SIMs, so a sizeable chunk could come back as 131026 on the first send. The same 1,000 customers who typed their own number into your checkout form would usually fail far less, because the number was entered by its owner and used recently. The exact rates vary; the direction does not.
How to read a failed status webhook
A 131026 usually does not show up when you call the send API. The request succeeds and returns a message ID (wamid), and the failure arrives later on your webhook as a status update. Meta's documentation also notes there can be a minor delay before a failed status arrives, so build in a short buffer before deciding a message was dropped.
According to Meta's status webhook reference, a failed status includes an errors array. Each entry has:
code— the numeric error code, for example131026titleandmessage— a short description (Meta's reference says these carry the same value)error_data.details— a longer explanationhref— a link to the error code documentation
Store the code against the message and the contact, not just a generic "failed" flag. If you only keep "failed", you cannot tell a dead number (131026) from a frequency cap (131049) or an opt-out (131050), and you will make the wrong decision about whether to send again.
Log the wamid, number, template, campaign, error code and timestamp per failure, so you can see which source list fails and which numbers fail repeatedly.
Diagnose and fix: cause, check, fix
Work through the likely causes in this order. Most bulk 131026 failures are resolved at the first two rows.
| Likely cause | How to check | Fix |
|---|---|---|
| Number is wrongly formatted | Look for leading 0, missing 91, doubled 9191, spaces inside digits, scientific notation, more or fewer than 10 digits after 91 | Normalise to +91 plus 10 digits before upload; reject anything that does not fit |
| Number is a landline or disconnected | Number has an STD-code pattern, or a call goes to "number does not exist" | Remove from WhatsApp sends; use SMS or a call if you have consent for those |
| Person does not use WhatsApp | Ask them, or check whether they have ever messaged your business number | Move them to another channel; stop sending on WhatsApp |
| Old WhatsApp version or terms not accepted | Real customer, number confirmed correct, still fails | Ask them by SMS or call to update WhatsApp and open the app once; retry only after they confirm |
| List was bought or scraped | Failure rate is far higher for one source or upload than others | Stop using that source; rebuild with opt-in collection |
| Typing error at collection | Failures cluster on manually entered records | Confirm numbers at entry (OTP or click-to-chat first message) |
A quick test for a single number: ask the customer to send any message to your WhatsApp Business number. If their message reaches you, the number is on WhatsApp and you can reply within the 24-hour customer service window. This is also exactly what Meta suggests users confirm.
Send these messages on WhatsApp, from your own number
We get your templates approved on the official WhatsApp API and set up your first broadcast with you. ₹0 platform fee, you pay only Meta's per-message rate.
Clean your list before the next broadcast
The cheapest 131026 is the one you never send. Before uploading a contact sheet for a campaign, run these checks.
1. Normalise Indian number format
Indian mobile numbers have 10 digits, and with the country code they become 12 digits: 91 followed by the 10-digit number, for example +91 98XXXXXXXX. Strip spaces, hyphens, brackets and a leading 0, then make sure exactly one 91 prefix is present. Indian mobile numbers currently begin with 6, 7, 8 or 9; a "mobile" that starts with another digit is usually a landline with an STD code or a typo.
Meta's send messages documentation notes that if the plus sign is omitted, your business phone number's country calling code is prepended. For an Indian business number that means a bare 10-digit number gets 91 added, but an international customer's number without + and its own country code may be sent to the wrong number entirely. Store every number in full international format.
2. Remove duplicates and obvious junk
Deduplicate after normalising, because 9876543210, 09876543210 and +91 98765 43210 are the same person. Remove rows with repeated digits (0000000000), test numbers and your own staff numbers unless intended.
3. Keep a suppression list
Any number that returns 131026 on two separate campaigns should go on a suppression list and be excluded from future WhatsApp uploads until the customer contacts you again. Do the same for 131050 (marketing opt-out) and for anyone who replies "STOP". Our guide on opt-in list hygiene and re-permissioning covers how to rebuild an old list properly.
4. Collect numbers with opt-in
Numbers collected through a click-to-chat link, a website form with a WhatsApp consent checkbox, or a first message from the customer are far less likely to fail, because the owner typed them and is an active WhatsApp user. Opt-in is also a WhatsApp Business Messaging Policy requirement for business-initiated messages, not just good practice.
Retry policy: when to resend and when to stop
Blind retries are the most common mistake. A 131026 caused by a non-WhatsApp number fails every time, and retrying only inflates your failure reports.
| Error code | Retry? | When |
|---|---|---|
131026 | No automatic retry | Only after the customer confirms (by SMS, call or a WhatsApp message to you) that the number is correct and WhatsApp is updated |
131049 | Not immediately | Meta says wait at least 24 hours before resending the marketing template; an immediate retry returns another error |
131047 | Yes, differently | Resend as an approved template, not free-form text |
131050 | No | Meta says do not retry; the user stopped marketing messages from you |
131000 | Yes, once or twice | Meta says try again; if it persists, open a support ticket |
131048 | Not until quality recovers | Fix targeting and check quality status in WhatsApp Manager first |
A simple rule for campaign teams: one 131026 means "check this number"; two 131026 failures on different days mean "suppress this number for WhatsApp".
Does 131026 cost money or hurt quality?
Billing
Meta's pricing documentation states that businesses are only charged when a message is delivered, and that Meta does not charge for messages sent. A message that fails with 131026 is not delivered, so by that rule it should not carry a Meta charge. Pricing rules do change, so check Meta's pricing page for the current position, and check your BSP's own terms for any platform fee on attempted sends.
Quality rating
Meta's documentation says message quality is based on how WhatsApp users received your messages over the past seven days, using signals such as blocks, reports, mutes and archives, plus the reasons people give when they block you. A number that is not on WhatsApp cannot block you, and Meta does not list 131026 failures as a quality signal.
The risk is indirect. A list with a high 131026 rate is usually a list without consent. The numbers on it that do receive your message belong to people who never asked to hear from you, and those people block and report. That is how a bad list moves your number toward a yellow or red rating. If that has already happened, read our quality rating red recovery guide.
Messaging limits
Meta defines your messaging limit as the maximum number of unique WhatsApp user phone numbers your business can deliver messages to, outside a customer service window, in a moving 24-hour period, shared across the phone numbers in your business portfolio. Meta also asks for delivered messages, not attempted ones, on its scaling path. So, as an illustration, a campaign where 4 in 10 numbers are dead builds your delivered volume more slowly than a clean list of the same size. See WhatsApp messaging limits and tiers for how scaling works.
Finding 131026 failures in RichAutomate
If you run broadcasts on RichAutomate, the campaign details page shows the failure data you need to clean your list:
- "Why messages failed" panel. Failed messages are grouped by WhatsApp's error code with a count for each, and each code opens a plain-language explanation of what it means and what to do. For 131026, it explains the number may not be on WhatsApp, or the person uses an old version or has not accepted the latest terms.
- Per-message status and error code. The message list shows each recipient's status, and failed rows show the error code with the same help text. You can filter the list to Failed.
- Export CSV. The export includes phone, name, status, sent/delivered/read times and an Error column, so you can pull the 131026 numbers into a suppression sheet.
- No automatic resend loop on 131026. The campaign sender treats 131026 as a terminal error and stops retrying that message instead of re-attempting it several times.
- Manual retry. There is a per-message Retry and a "Retry Failed" button. Note that "Retry Failed" re-queues every failed message in the campaign, whatever the code, so if most failures are 131026, export and clean first, then retry only the rows that make sense.
RichAutomate runs on Client Pay: Meta bills its own message charges directly to your WhatsApp Business account (in India, about ₹0.8631 per marketing template and ₹0.115 per utility template, excluding GST), and RichAutomate charges a platform fee of ₹0.10 per message. Plans are Starter ₹499/month, Pro ₹899/month, White-label ₹1,199/month, or Custom, and the plan fee is credited to your wallet. Details are on the pricing page.
A 10-minute checklist before your next campaign
- Export last campaign's failures and sort by error code.
- Suppress numbers with two or more 131026 failures, plus 131050 opt-outs and STOP replies.
- Normalise to
+91plus 10 digits, then deduplicate. - Drop any purchased or scraped source; upload the rest split by source.
- Ask high-value customers who failed, by SMS or call, to message you on WhatsApp.
- Send a small batch first and check the failure breakdown before sending the rest.
A clean list will not remove every 131026, but it brings the rate down and protects your number's quality. If you want to see the failure breakdown on your own campaigns, start a 7-day trial of RichAutomate and run a small broadcast to a list you trust.