Skip to main content
When WhatsApp doesn’t deliver a message, you’ll see it in two places: on the message in your inbox, and against the person in a broadcast’s results. Each one shows Meta’s own message first, exactly as WhatsApp sent it, and then what it means in plain words. Meta’s wording is kept so you can see the refusal came from WhatsApp, search for it, or quote it to Meta’s support. A broadcast also groups its failures, so forty people refused for the same reason are one line with a count, not forty.

The marketing limit

The one you’ll see most is this:
This message was not delivered to maintain healthy ecosystem engagement. (131049)
This isn’t a fault with your account, your template or us. WhatsApp limits how many marketing messages each person receives from all businesses combined, and refuses the rest. It does this on every WhatsApp platform, not just this one. It decides per person, based on things like how often they read marketing messages and how busy their inbox is. What helps:
  • Wait at least 24 hours before sending that person marketing again. Meta warns that resending sooner can keep them blocked for longer.
  • Space your campaigns out. Several offers in a few days to the same list is exactly what triggers it.
  • Replies reset it. When someone messages you, marketing you send them in the next 24 hours doesn’t count toward the limit.
  • Use utility templates for transactional messages. Order confirmations, delivery updates and tickets aren’t subject to the limit — as long as the template is honestly utility and not a promotion.
To protect your customers, a marketing broadcast holds back anyone WhatsApp limited in the last 24 hours, rather than sending again and extending the block. They’re listed as Not contacted, with the reason. Utility templates are never held back.

Other reasons

Every code has its own page in WhatsApp error codes, explained — what it means, whose problem it is, how to fix it and whether to retry. A message WhatsApp didn’t deliver isn’t charged. If you see a code that isn’t here and its explanation is missing, or the same failure keeps happening, tell us and include Meta’s message.