Troubleshoot WhatsApp template lifecycle errors
A WhatsApp send fails and the error carries one of Meta’s template-lifecycle codes: the template does not exist on your WhatsApp Business account (WABA) in the requested language (132001), Meta paused it for quality (132016), Meta disabled it for policy (132068/132069), or the account never finished registration (133010). Each is Meta refusing the send because of template or account state: re-sending the same payload reproduces the same refusal until the state changes. This page decodes the codes, tells you which side the fix lives on, and says when a retry helps and when it wastes time or makes things worse.Orbit surfaces these codes with Meta’s own guidance attached, but it
cannot lift a pause, re-enable a disabled template, or complete a
registration on your behalf. The recovery steps below that say
“in Meta Business Manager” happen in Meta Business Manager; Orbit
support can help you read an error, not override it.
Symptoms
The same refusal surfaces in three places:- Delivery Log. The message detail shows status
failedand the Orbit code (for exampleWHATSAPP_TEMPLATE_DISABLED) in the error column. message.failedwebhook. The payload carries the same error envelope;details.whatsappErrorCodeholds the numeric Meta code (for example132068) anddetails.fix_stepscarries Meta’s remediation steps.- Campaign failure rollup. When a template pauses or disables, every send through it fails the same way, so the campaign rollup fills with one repeated code. A burst of identical codes across recipients is the signature of a template- or account-level state, not a per-recipient problem.
WHATSAPP_TEMPLATE_VAR_COUNT_MISMATCH, the refusal happened in Orbit
before Meta was reached — that is the send-side parameter check, and
it has its own page:
Troubleshoot WHATSAPP_TEMPLATE_VAR_COUNT_MISMATCH.
Decoder
Per-code fixes
132001 — template not found
- In Settings → Templates, confirm the template is approved in
exactly the language you send with (
en_USis noten). - Re-sync templates from Meta to refresh Orbit’s local copy.
- If the template was created or approved in the last few minutes, wait one to two minutes for Meta’s propagation, then send again.
132012 — parameter format mismatch
Parameters must match the template’s placeholders in order, shape, and length. The full decode-and-fix walkthrough (positional"1"-"N" keys, currency and date objects, the 1024-character per
field cap) lives on the parameter page:
Troubleshoot WHATSAPP_TEMPLATE_VAR_COUNT_MISMATCH.
132016 — template paused for quality
- Rewrite the template so the first line states why the recipient is receiving the message, and strip promotional content out of utility and authentication templates.
- Confirm recipients explicitly opted in; blocks and reports from traffic that did not expect your messages are what drove the rating down.
- Resubmit for re-review. Meta unpauses automatically once observed quality recovers, typically 24-72 hours after the fix lands.
- Route the campaign through a different approved template in the meantime.
132068 / 132069 — template disabled for policy
- Open the template in Meta Business Manager and read the cited policy violation.
- Appeal the decision through Meta Business Support, or fix the content and resubmit under a new template name — Meta does not re-approve a disabled template under its existing name.
- Until Meta re-enables the template or approves a replacement, sends through it stay refused. There is no retry path and no Orbit-side override.
133010 — account not registered
- Open Settings → Channels → WhatsApp and click Reconnect to finish Embedded Sign-up.
- Confirm the number’s registration state in Meta Business Manager under WhatsApp Accounts; a number that stalled mid-signup may need its SMS or voice OTP verification completed in WhatsApp Manager.
- Send again once registration completes — no template change is needed.
131051 — unsupported message type
Send a text-only or plain template message instead of the interactive or media type you used; some interactive formats are gated by app version and region. The refusal follows the recipient’s device, so the same payload can succeed for other recipients.190 — token expired
Reconnect the WABA under Settings → Channels → WhatsApp to re-run Embedded Sign-up and mint a fresh token; your numbers and templates re-link on reconnect. The details are in WhatsApp re-authentication and connection recovery.131000 / 141000 — platform transient fault
This is a Meta-internal hiccup. Orbit retries the send automatically with backoff before the message lands onfailed, so a failed row
here means the hiccup outlived the retry window. A manual re-send is
safe. If the code persists for several minutes across many sends,
check status.facebook.com for an active Meta incident.
368 / 470 — policy block
Stop sending into the block: every send during an active block extends it. Review the block reason and expiry in Meta Business Manager under WhatsApp Accounts → Quality, fix the trigger (unsolicited marketing, missing opt-in, prohibited content), and resume after the block lifts. For 470 specifically, switch to an approved UTILITY or AUTHENTICATION template and confirm opt-in before resuming.Fix vs retry, one rule
- Deterministic refusals (the 422/409/401 rows above) are never retried automatically by Orbit, because retrying an unchanged payload replays an unchanged refusal. Fix the state first, then send again; that send is a new request, not a retry.
- Transient faults (
WHATSAPP_PLATFORM_TRANSIENT_FAULT,WHATSAPP_SERVICE_UNAVAILABLE,WHATSAPP_RATE_LIMITED) are retried automatically on the same backoff schedule Orbit uses for all provider faults. If one still endsfailed, a manual re-send is safe. For the manual retry contract andRetry-Afterhandling, see Rate limits and cool-downs. - Policy blocks are the exception to “just re-send later”: they are the one family where re-sending actively hurts. Wait for the expiry Meta reports.
Worked example
A Delivery Log row showsfailed with
WHATSAPP_TEMPLATE_PAUSED. The same envelope is available over the
API:
whatsappErrorCode: 132016 is a
Meta-side quality pause — “retry now?” is no, and the fix is your
content plus Meta’s re-review. Act on it: rewrite and resubmit the
template, move the campaign to a different approved template now,
and only return traffic to the paused template once Meta reports it
unpaused. The dashboard column, the webhook, and this API read all
agree because they render the same envelope.
What to send support
If you have worked the fix for your code and the same failure continues, email whatsapp-support@devotel.io with:- The message id (the
msg_…id from the Delivery Log row or the API read). - The
whatsappErrorCodeand the Orbit code from the error envelope. - The template name and language exactly as configured
(
order_shipped+en_US). - The WABA id shown under Settings → Channels → WhatsApp.
- The timestamp of a failed send.
See also
- Troubleshoot WhatsApp templates — pending and rejected review states and the 24-hour window.
- Troubleshoot WHATSAPP_TEMPLATE_VAR_COUNT_MISMATCH — the send-side parameter pre-flight that refuses before Meta is reached.
- WhatsApp campaign auto-paused on a RED quality rating — the number-level pause that stacks on top of template pauses.
- WhatsApp billing issue — the 131042 payment hold that blocks sends the same way.
- WhatsApp re-authentication and connection recovery — the 190 / 133010 recovery family.
- WhatsApp channel overview — setup and the connection model.