On this page

Too long? Read this
- Error 131049 means the recipient reached Meta's per-user marketing cap, not that your number has a problem; the message is not delivered and not billed
- The cap is per user across every business, undisclosed, and hits heavy-marketing markets like India hardest; a broad list will always see some failures
- Retrying immediately fails again and, since April 2026, counts against you; retry once after 24 hours or reach the person with a utility message
- Segmenting to engaged, consenting contacts and keeping to one marketing touch a week per person is the only durable fix
Every business that sends WhatsApp marketing at any scale meets error 131049 sooner or later: a broadcast goes out, a slice of it comes back as "not delivered to maintain healthy ecosystem engagement", and the natural reaction is to assume the number is in trouble and resend. Both instincts are wrong. 131049 is Meta's per-user frequency cap, it has nothing to do with your quality rating, and resending is the one thing that makes it worse. This guide explains what the cap is, who it hits, what it costs, how the rules changed in 2025 and 2026, and what a sensible response looks like.
What is Meta's frequency cap?
Meta limits how many marketing template messages a single WhatsApp user can receive from all businesses combined over a period of time. When a user has reached that limit, any further marketing template sent to them by any business is declined with error code 131049. The message is not delivered, the sender is not billed, and the user never sees it. Meta introduced the mechanism in 2023 in a few markets and made it global; it applies only to marketing templates, never to utility or authentication templates or to replies inside the 24-hour customer service window.
The threshold is not published. Meta describes it as dynamic and based on the user's engagement: people who read and reply to business messages can receive more; people who ignore or block them receive fewer. The practical effect is that the users most saturated with marketing are precisely the ones your marketing is least likely to reach.
Who does it hit?
Anyone who receives a lot of WhatsApp marketing. In India that describes most urban smartphone users: banks, e-commerce, food delivery, telecom, coaching institutes and local businesses all message the same numbers. A broadcast to a broad, older list will typically see a visible share of 131049 failures on any given day; a broadcast to recent customers who replied to you last week will see far fewer, because their engagement raises their allowance and because they are less likely to be at the cap from other senders.

The cap is per user, not per business, so it does not matter how careful you have been. Two businesses that share customers compete for the same allowance, and a customer who has already received their day's marketing from a bank and a food app is unreachable by you until the window rolls.
What does it cost?
Directly, nothing: Meta bills delivered messages only, and a 131049 failure was never delivered. Indirectly, it costs reach and, if mishandled, quality. A campaign that plans to reach 5,000 people and delivers to 4,300 has lost 14 percent of its audience for that day. If the sender resends the failed 700 immediately, most fail again, the retries count as sends in Meta's newer accounting, and since April 2026 excessive retries of failed messages are penalised with slower delivery for the sender. A resend loop can turn a harmless cap into a real deliverability problem.
What changed in 2025 and 2026?
| Date | Change | Effect on 131049 |
|---|---|---|
| 2023 | Frequency cap introduced, expanded globally through 2024 | 131049 appears in every market |
| July 2025 | Per-message pricing replaces conversation pricing | Failed sends were never billed under either model; the change made utility templates free in-window, which gives a cheaper alternative to marketing for transactional contact |
| October 2025 | Portfolio-level messaging limits | Unrelated to the user cap but often confused with it; limits are per business, the cap is per user |
| April 2026 | Retry penalties for repeatedly resending failed marketing messages | Blind resends of 131049 failures now slow your whole account |
How can I tell 131049 from other failures?
| Symptom | Likely cause | Code |
|---|---|---|
| Marketing template not delivered, "healthy ecosystem engagement" | Per-user frequency cap | 131049 |
| Any template not delivered, "undeliverable" | Number not on WhatsApp, or the user blocked you | 131026 |
| Free-form message rejected | 24-hour window closed | 131047 |
| Marketing template paused | Template quality dropped | 132015 |
| Marketing to a US number | Meta's US marketing pause | Rejected at send |
| A block of recipients waiting, not failed | Your tool holding for pacing or daily limit | No code, held state |
A tool that lumps all of these into "failed" leaves you guessing; the report should show the code and the plain reason per recipient.
What should I do when I see it?
- Do nothing immediate. The failed recipients are not lost; they are capped for now.
- Let the tool retry once after at least 24 hours. If it does not do this automatically, schedule a single follow-up to the capped segment the next day; never loop.
- If the message was about something the person did (an order, a booking, a renewal), send it as a utility template instead; utility is exempt from the cap and costs Rs 0.115 in India.
- Look at the share. Under 10 percent capped on a consenting, active list is normal. Above 20 percent means the list is stale or over-marketed, and the fix is segmentation, not retries.
- Reduce frequency. One marketing touch per person per week is a safe working assumption; the cap is Meta's way of enforcing something like it.
How do I reduce 131049 over time?
- Segment by engagement. Send offers to people who read or replied to you in the last 60 to 90 days. Their allowance is higher and their block rate lower.
- Collect explicit marketing consent and record it. Consenting contacts engage more, which raises their cap and your quality rating together.
- Space out your own sends. VGraple CRM's eligibility check skips contacts who received marketing from you in the last few days by default; the number is configurable.
- Move transactional messages to utility templates. Reminders, updates, receipts and confirmations should never compete for a user's marketing allowance.
- Use retargeting cohorts instead of resends. Follow up readers who did not reply with a different message two days later; leave the capped for the single automatic retry.
- Watch Meta's own optimisation. Marketing sends routed through the Marketing Messages API let Meta choose the delivery moment within your window, which reduces collisions with the cap.
How VGraple CRM handles 131049
The broadcast worker recognises 131049, places the recipient in a held state with the reason, retries once after a cooling period, and reports capped recipients separately from undeliverable numbers so the campaign's real failure rate is visible. The pre-send eligibility check excludes contacts marketed to very recently, and the report offers the capped cohort as an audience for a utility follow-up where one applies. The 131049 troubleshooting article walks through the report; delivery protection describes the wider system.
A worked example
A retailer with 12,000 consenting contacts sends a Diwali offer at 11 am. Meta delivers 9,900, reports 1,400 as 131049 and 700 as 131026. The 700 are numbers no longer on WhatsApp; they are suppressed from future sends. The 1,400 are held; at 11 am the next day the tool retries once and 900 deliver, so final reach is 10,800, 90 percent of the list, with no duplicate messages and no penalty. Total Meta charge: 10,800 times Rs 0.8631, about Rs 9,321. Had the retailer resent the 1,400 three times on the first day, reach would have been the same, the report would have shown 4,000 failures, and delivery for the following week's campaigns would have slowed.