Skip to main content
When a WhatsApp message fails, Zavu surfaces the upstream error code in the message’s errorCode and errorMessage fields, plus on the message.failed webhook. This page maps every error you can hit, explains why it happens, and tells you the exact action to take — in code, in the dashboard, or with your end user.
All error codes on this page are the canonical codes returned by the WhatsApp Business Platform. Zavu passes them through unchanged so you can keep your existing handlers if you migrate from another stack.

How Zavu Returns Errors

Every failed WhatsApp message exposes the same shape, whether you read it from the API, the dashboard, or a webhook:
  • errorCode — numeric code (see tables below)
  • errorCategory — one of auth, rate_limit, integrity, template, delivery, media, flow, other
  • retriable — whether retrying the same payload could succeed without changes
Subscribe to the message.failed event on your webhook to react in real time instead of polling. See Webhooks.

Quick Triage

Use this decision tree before diving into the tables:

A. Authorization Errors

These mean your WhatsApp Business Account (WABA) or the underlying app credentials aren’t valid for the action you tried. They almost never resolve by retrying — you must reconnect the account.
If you see auth errors on every message, treat it as an outage on that sender. Pause broadcasts until the sender is connected again to avoid burning quality rating.

B. Rate Limit & Throttling Errors

WhatsApp enforces several independent limits: per-app calls, per-WABA throughput, per-recipient pacing, and account-level spam protection. Each has a different remediation window.
Zavu Broadcasts automatically respect WABA throughput limits. If you’re hitting 130429 from your own send loop, switch to broadcasts.

Retry strategy

C. Integrity Errors

Account-level enforcement actions. The message wasn’t sent because the platform restricted the sender or recipient.
Don’t keep retrying integrity errors. Each rejected send weighs against your quality rating.

D. Template Errors

Triggered when sending a template message. Most are fixable by editing the template; a few require creating a new one.
A template that fails with 132015 or 132016 is a quality problem, not a code problem. Look at the template’s quality rating in Senders → Templates before editing blindly.

E. Delivery Errors

The template/account was fine, but the message couldn’t reach the recipient.

Detect the 24-hour window

F. Media Errors

Issues with the file attached to an inbound or outbound message.
Common gotchas: PNGs over 5MB, MP4s without h264 video + aac audio, and stickers that aren’t 512×512 WebP.

G. WhatsApp Flows Errors

Errors specific to interactive Flows (multi-step forms inside WhatsApp).

H. Miscellaneous Errors

Codes that don’t fit cleanly elsewhere but you’ll see eventually.

Programmatic Error Handling

Treat errors by category, not by code, to keep your code resilient as new codes appear:

Prevention Checklist

Validate before send

Verify phone format (E.164), template params, and 24h window state on your side.

Watch quality rating

A drop from high to medium is your first warning. Pause marketing before the platform does it for you.

Use Smart Routing

Let Zavu fall back to SMS/email automatically when WhatsApp returns delivery errors.

Subscribe to webhooks

message.failed and template.status_changed catch problems before users do.

References

The error codes documented here are defined by the WhatsApp Business Platform. For the authoritative, always-up-to-date list maintained by Meta: This guide adapts those codes with Zavu-specific handling (error shape, webhooks, Smart Routing fallback). If Meta adds a new code that isn’t listed here yet, Zavu still passes it through unchanged on errorCode — please open an issue so we can add it.

Next Steps

Smart Routing

Automatic channel fallback when WhatsApp delivery fails

Template Approval

Avoid 132xxx errors by getting templates right the first time

Webhooks

React to failures in real time

Rate Limiting

How Zavu paces sends to stay under WABA limits