> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshoot WhatsApp template lifecycle errors (132001, 132016, 132068, 133010)

> Decode failed WhatsApp sends that Meta refused for template or account state — not found, paused for quality, disabled for policy, or not registered — and take the right fix-or-retry path for each code.

# 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.

<Note>
  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.
</Note>

## Symptoms

The same refusal surfaces in three places:

* **Delivery Log.** The message detail shows status `failed` and the
  Orbit code (for example `WHATSAPP_TEMPLATE_DISABLED`) in the error
  column.
* **`message.failed` webhook.** The payload carries the same error
  envelope; `details.whatsappErrorCode` holds the numeric Meta code
  (for example `132068`) and `details.fix_steps` carries 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.

If the failure is instead an HTTP 400
`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](/troubleshooting/whatsapp-template-var-count).

## Decoder

| Meta code | Orbit code | What it means | Who fixes it | Retry now? |
| - | - | - | - | - |
| 132001 | `WHATSAPP_TEMPLATE_NOT_FOUND` | The template name does not exist on the WABA in the requested language: not approved in that locale, stale local cache, or Meta propagation lag. | You: approve or re-sync | No. Re-sync or recreate, then send again |
| 132012 | `WHATSAPP_TEMPLATE_PARAM_FORMAT` | A parameter does not match the template's expected shape: named vs positional keys, wrong type, or over-long value. | You: fix the payload | No. Fix the params, then send again |
| 132016 | `WHATSAPP_TEMPLATE_PAUSED` | Meta paused the template for low quality or high block rate. | You rewrite the content; Meta re-reviews and unpauses | No. Sends stay blocked until Meta unpauses |
| 132068 / 132069 | `WHATSAPP_TEMPLATE_DISABLED` | Meta disabled the template after a policy violation. | Meta: appeal or accept; you resubmit fixed content | No. Not until Meta re-enables or approves a replacement |
| 133010 | `WHATSAPP_ACCOUNT_NOT_REGISTERED` | The WABA or number has not completed WhatsApp Cloud API registration. | You: finish Embedded Sign-up | No. Finish registration, then send |
| 131051 | `WHATSAPP_UNSUPPORTED_MESSAGE_TYPE` | The message type is not supported for the recipient's app version or region. | You: fall back to a supported type | No as sent. A text or template re-send works |
| 190 | `WHATSAPP_TOKEN_EXPIRED` | The access token expired, was revoked, or lost its WhatsApp scope. | You: reconnect | No. Reconnect, then send |
| 131000 / 141000 | `WHATSAPP_PLATFORM_TRANSIENT_FAULT` | Meta's generic platform-side "something went wrong". | Meta; Orbit retries automatically | Yes. Auto-retried with backoff; a manual re-send is safe |
| 368 / 470 | `WHATSAPP_POLICY_BLOCK` | A temporary policy block on the account or the recipient. | Meta lifts it after the cooldown; you fix content and opt-in | No. Sends into an active block extend it |

## Per-code fixes

### 132001 — template not found

1. In **Settings → Templates**, confirm the template is approved in
   exactly the language you send with (`en_US` is not `en`).
2. Re-sync templates from Meta to refresh Orbit's local copy.
3. If the template was created or approved in the last few minutes,
   wait one to two minutes for Meta's propagation, then send again.

Re-sending without one of the above fails identically — the refusal
is about the (name, language) pair on the WABA, not about that one
request.

### 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](/troubleshooting/whatsapp-template-var-count).

### 132016 — template paused for quality

1. 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.
2. Confirm recipients explicitly opted in; blocks and reports from
   traffic that did not expect your messages are what drove the
   rating down.
3. Resubmit for re-review. Meta unpauses automatically once observed
   quality recovers, typically 24-72 hours after the fix lands.
4. Route the campaign through a different approved template in the
   meantime.

This is the template-level form of the number-level RED rating
pause. If several templates pause at once, the quality problem is on
the phone number: see
[WhatsApp campaign auto-paused on a RED quality rating](/troubleshooting/whatsapp-quality-red-campaign-pause).

### 132068 / 132069 — template disabled for policy

1. Open the template in Meta Business Manager and read the cited
   policy violation.
2. 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.
3. 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

1. Open **Settings → Channels → WhatsApp** and click **Reconnect** to
   finish Embedded Sign-up.
2. 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.
3. Send again once registration completes — no template change is
   needed.

The full re-authentication walkthrough covers stuck signups:
[WhatsApp re-authentication and connection recovery](/troubleshooting/whatsapp-auth-and-connection-recovery).

### 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](/troubleshooting/whatsapp-auth-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 on `failed`, 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 ends `failed`, a manual re-send
  is safe. For the manual retry contract and `Retry-After`
  handling, see
  [Rate limits and cool-downs](/troubleshooting/rate-limits).
* **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 shows `failed` with
`WHATSAPP_TEMPLATE_PAUSED`. The same envelope is available over the
API:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/messages/msg_9f2c81e4d1" \
  -H "X-API-Key: $ORBIT_API_KEY"
```

```json theme={null}
{
  "id": "msg_9f2c81e4d1",
  "channel": "whatsapp",
  "status": "failed",
  "error": {
    "code": "WHATSAPP_TEMPLATE_PAUSED",
    "message": "Meta paused this template due to low quality or high block rate. Sends through this template stay blocked until quality recovers.",
    "details": {
      "whatsappErrorCode": 132016,
      "fix_steps": [
        "Edit the template to address quality concerns (clarity, value, opt-in compliance).",
        "Submit for re-review — Meta unpauses automatically once observed quality recovers.",
        "Use a different approved template for this campaign in the meantime."
      ]
    }
  }
}
```

Decode it against the table: `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](mailto:whatsapp-support@devotel.io)
with:

1. The **message id** (the `msg_…` id from the Delivery Log row or the
   API read).
2. The **`whatsappErrorCode`** and the Orbit code from the error
   envelope.
3. The **template name and language** exactly as configured
   (`order_shipped` + `en_US`).
4. The **WABA id** shown under Settings → Channels → WhatsApp.
5. The **timestamp** of a failed send.

For Meta-side states (paused, disabled, blocked) support can show
you exactly what Meta reported; the lift itself only happens at
Meta, and the same packet is what a Meta Business Support appeal
needs.

## See also

* [Troubleshoot WhatsApp templates](/troubleshooting/whatsapp-template) —
  pending and rejected review states and the 24-hour window.
* [Troubleshoot WHATSAPP\_TEMPLATE\_VAR\_COUNT\_MISMATCH](/troubleshooting/whatsapp-template-var-count) —
  the send-side parameter pre-flight that refuses before Meta is
  reached.
* [WhatsApp campaign auto-paused on a RED quality rating](/troubleshooting/whatsapp-quality-red-campaign-pause) —
  the number-level pause that stacks on top of template pauses.
* [WhatsApp billing issue](/troubleshooting/whatsapp-billing-issue) —
  the 131042 payment hold that blocks sends the same way.
* [WhatsApp re-authentication and connection recovery](/troubleshooting/whatsapp-auth-and-connection-recovery) —
  the 190 / 133010 recovery family.
* [WhatsApp channel overview](/channels/whatsapp) — setup and the
  connection model.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.