Logo
Logo
Talk Now

Trusted by 10,000+ businesses

WhatsApp

WhatsApp Cloud API Error Codes: Full List, Fixes & Examples

Developer reference for WhatsApp Cloud API error codes- 130429, 131026, 131047, 131049, 132000, 132001, 133010 and more. What each one means, whether to retry, and the exact fix, checked against Meta's documentation.

By Get Click Media · · Updated Oct 30, 2026 · 11 min read

This guide explores whatsapp cloud api error codes: full list, fixes & examples with practical context, actionable guidance, and answers to common questions for businesses working with WhatsApp.

WhatsApp Cloud API Error Codes: Full List, Fixes & Examples

In this article

Explore the key concepts, practical considerations, and frequently asked questions related to whatsapp cloud api error codes: full list, fixes & examples.

Key takeaways

  • 131030 is not 'template not found'. It means the recipient isn't on your test number's allowed list. Template-not-found is 132001.
  • 133010 is about your sending number, not the recipient: your number is not registered on the Cloud API.
  • Only retry throughput and temporary errors (130429, 131016, 131000, 5xx). Template, policy and payload errors need you to change the request.

This is a developer reference for WhatsApp Cloud API error codes: what each code means, whether to retry it, and how to fix it, with example payloads. Codes and definitions were last checked against Meta's official error code reference on 30 October 2026. Meta adds and changes codes over time, so treat their page as the final word.

Want our team to fix the error for you? If you're a Get Click Media customer, or you'd like your WhatsApp API issues monitored and fixed for you, see our WhatsApp API error support page.

Where Errors Appear

Errors reach you in one of two places, and you need to handle both:

  1. The API response. When the request itself is rejected, you get an error before the message is accepted, for example an invalid parameter or a missing permission.
  2. A failed status webhook. The request was accepted, and you received a wamid, but the message failed later, for example because it was undeliverable or blocked by a policy limit. These failures never appear in the API response.

Meta notes that Cloud API runs its checks in no fixed order, so a request with several problems can return a different code from one attempt to the next. Fix the reported problem, resend, and check again.

Example: synchronous API error

{
  "error": {
    "message": "(#132001) Template name does not exist in the translation",
    "type": "OAuthException",
    "code": 132001,
    "error_data": {
      "messaging_product": "whatsapp",
      "details": "template name (order_confirm) does not exist in en_US"
    },
    "fbtrace_id": "A1b2C3d4E5f6"
  }
}

Read error.code to decide what to do, and error_data.details to see exactly what failed. Log fbtrace_id, because Meta support asks for it.

Example: asynchronous failed status

{
  "statuses": [{
    "id": "wamid.HBgMOTE5ODc2NTQzMjEwFQIAERgS...",
    "status": "failed",
    "timestamp": "1761810000",
    "recipient_id": "919876543210",
    "errors": [{
      "code": 131026,
      "title": "Message undeliverable",
      "message": "Message undeliverable",
      "error_data": { "details": "Message Undeliverable." }
    }]
  }]
}

Error Code Reference

Retry? column: Yes = retry with exponential backoff. Later = wait for the limit or window to reset, then retry. No = change the request, account, or recipient first.

Authorization and permissions

CodeMeaningRetry?Fix
0AuthException- could not authenticateNoCheck the token is complete and sent as Authorization: Bearer <token>
3API method- capability or permission issueNoCheck the app has the WhatsApp product and the needed permissions
10Permission deniedNoCheck that the token has whatsapp_business_messaging / whatsapp_business_management, and that the System User is assigned to the WABA
190Access token expired or invalidNoGenerate a new token. Use a System User token with no expiry in production, not the 24-hour temporary token
200–299API permission errorNoGrant the missing permission, then generate a new token
131005Access denied- permission not granted or removedNoCheck the token in the Access Token Debugger, then regenerate it with the right permissions

Throughput and limits

CodeMeaningRetry?Fix
4Too many API calls (app-level)LaterReduce the call rate, for example by batching reads and caching template lookups
80007WhatsApp Business Account rate limit reachedLaterSpread calls out. See rate limits
130429Throughput reached- sending faster than this number's messages-per-second limitYesPace sends below the number's limit (80 msg/sec by default) and back off exponentially
131048Spam rate limit- sending restricted because of qualityLaterCheck the number's quality rating in WhatsApp Manager. Pause campaigns and improve targeting
131049Not delivered to maintain healthy ecosystem engagement (per-user marketing limit)LaterDon't retry for at least 24 hours. Send fewer marketing messages to this user
131056Pair rate limit- too many messages to the same userYesWait before messaging this user again. Other recipients are unaffected

Recipient and delivery

CodeMeaningRetry?Fix
131021Recipient is the same as the senderNoSend to a different number
131026Message undeliverableNoThe recipient may not be on WhatsApp, may not have accepted the latest Terms, or may be on an old app version. Fall back to SMS or another channel
131030Recipient not in the allowed listNoOnly applies to test numbers. Add the recipient in the App Dashboard, or send from a production number
131047Re-engagement message- more than 24 hours since the user last repliedNoSend an approved template instead of free-form content
131050User has stopped marketing messages from youNoSuppress marketing to this user. Don't retry
131051Unsupported message typeNoCheck type is a supported message type and the payload matches it

Template errors

CodeMeaningRetry?Fix
132000Number of parameters doesn't match the templateNoSend exactly as many parameters as the template has placeholders, for each component
132001Template does not exist (in that language)NoCheck the exact name, the exact language code (en vs en_US) and that the status is APPROVED
132005Text too long after parameters are filled inNoShorten the parameter values
132007Template content breaks a formatting policyNoRemove disallowed characters, such as newlines, tabs, or more than 4 consecutive spaces, from parameter values
132012Parameter format doesn't matchNoMatch the parameter type to the template, for example image for an image header, currency or date_time where defined
132015Template paused for low qualityLaterEdit the template or wait for Meta to unpause it. Use a different template in the meantime
132016Template permanently disabledNoCreate a new template with improved content

Media

CodeMeaningRetry?Fix
131052Media download error- couldn't download media the user sentYesAsk the user to resend. Check the media ID and that your token can access it
131053Media upload error- couldn't use the media you sentNoUse a public HTTPS URL with the correct Content-Type, or upload to /{PHONE_NUMBER_ID}/media first and send by id. Check size and type limits

Account, number, and registration

CodeMeaningRetry?Fix
368Temporarily blocked for policy violationsLaterReview the policy notice in WhatsApp Manager. Appeal if you believe it is wrong
131031Business account lockedNoCheck Business Support / WhatsApp Manager for the reason. This often needs an appeal
131042Business eligibility- payment issueNoAdd or fix the payment method on the WABA
131045Message failed because of a phone number registration errorNoRegister the number again (see 133010)
131057Account in maintenance modeLaterWait. This is often temporary during a throughput upgrade
133000Previous deregistration was not completedNoDeregister the number fully, then register it again
133004Server temporarily unavailableYesRetry with backoff
133005Two-step verification PIN incorrectNoUse the correct PIN, or reset it in WhatsApp Manager
133006Phone number needs to be verified againNoVerify the number again before registering
133008 / 133009Too many PIN attempts, or attempts too fastLaterWait for the time given in the error, then try again
133010Your business number is not registered on the Cloud APINoCall POST /{PHONE_NUMBER_ID}/register
133015Number was recently deleted. Wait before registering itLaterWait a few minutes, then register

General

CodeMeaningRetry?Fix
131000Something went wrong (unknown error)YesRetry with backoff. If it keeps happening, contact Meta support with the fbtrace_id
131008Required parameter missingNoAdd the field named in error_data.details
131009Parameter value invalidNoFix the value named in error_data.details, for example the phone number format (country code, no +)
131016Service unavailableYesRetry with backoff. Check the platform status page
HTTP 5xxMeta server errorYesRetry with backoff

Worked Fixes

132000- parameter count mismatch

The template body is Hi {{1}}, your order {{2}} is confirmed., so it has two placeholders. This request sends only one parameter:

"components": [{ "type": "body",
  "parameters": [{ "type": "text", "text": "Asha" }] }]
"components": [{ "type": "body",
  "parameters": [
    { "type": "text", "text": "Asha" },
    { "type": "text", "text": "#10234" }
  ] }]

If the template has a header with a variable, or buttons with dynamic URLs, each needs its own component entry too.

132001- language code mismatch

The template was approved as en_US, but the request sends "language": { "code": "en" }. Use the language code exactly as listed on the template. Check it with GET /{WABA_ID}/message_templates?name=order_confirmation.

132007- formatting characters in parameters

Parameter values that contain newlines (\n), tabs, or more than four spaces in a row are rejected. Clean user-supplied values before sending:

const clean = (s) => String(s).replace(/[\n\t]/g, ' ').replace(/ {4,}/g, '   ').trim();

131047- outside the 24-hour window

You can only send a free-form "type": "text" reply within 24 hours of the user's last message. Track the user's last inbound message time from your webhook. After 24 hours, switch to a template:

const inWindow = Date.now() - lastInboundAt < 24 * 60 * 60 * 1000;
const payload = inWindow
  ? { type: 'text', text: { body: reply } }
  : { type: 'template', template: { name: 'follow_up', language: { code: 'en' } } };

Error Handling Pattern- Node.js

This handles both synchronous errors and the retry rules from the tables above.

const axios = require('axios');

const RETRYABLE = new Set([130429, 131000, 131016, 131052, 131056, 133004]);

async function sendWhatsApp(payload, attempt = 0) {
  try {
    const res = await axios.post(
      `https://graph.facebook.com/${process.env.API_VERSION}/${process.env.PHONE_NUMBER_ID}/messages`,
      { messaging_product: 'whatsapp', ...payload },
      { headers: { Authorization: `Bearer ${process.env.ACCESS_TOKEN}` } }
    );
    return res.data.messages[0].id; // wamid- accepted, not yet delivered
  } catch (err) {
    const status = err.response?.status;
    const e = err.response?.data?.error || {};
    const retryable = RETRYABLE.has(e.code) || status >= 500;

    if (retryable && attempt < 5) {
      const delay = Math.min(2 ** attempt * 1000, 30000) + Math.random() * 500;
      await new Promise((r) => setTimeout(r, delay));
      return sendWhatsApp(payload, attempt + 1);
    }

    console.error('WhatsApp send failed', {
      code: e.code, details: e.error_data?.details, fbtrace_id: e.fbtrace_id
    });
    throw err;
  }
}

Handle errors in failed webhook statuses as well. Suppress the recipient for 131050, fall back to another channel for 131026, and wait 24 hours before trying 131049 again.

Frequently Asked Questions- WhatsApp API Error Codes

What does WhatsApp error 131047 mean? You sent a non-template message more than 24 hours after the user last messaged you. Send an approved template instead.

What does WhatsApp error 132001 mean? The template name and language combination isn't an approved template on your WABA. Check the exact name, the exact language code, and that the status is APPROVED.

What does WhatsApp error 131026 mean? WhatsApp couldn't deliver to that recipient, usually because the number isn't on WhatsApp, the user hasn't accepted the latest Terms, or they're on an old app version.

What does WhatsApp error 133010 mean? Your sending number isn't registered on the Cloud API. Register it with POST /{PHONE_NUMBER_ID}/register.

Which WhatsApp API errors should I retry? Retry only throughput and temporary errors (130429, 131016, 131000, 133004, 5xx) with exponential backoff. Fix the request first for payload, template, and policy errors.

Official References

Article topics

whatsapp api error codeswhatsapp cloud api error codes listwhatsapp api error 131026whatsapp api error 131047whatsapp api error 132001whatsapp api error 130429

Frequently Asked Questions

What does WhatsApp error 131047 mean?

Error 131047 (Re-engagement message) means you sent a non-template message more than 24 hours after the user last messaged you. Outside the customer service window you can only send an approved template. Fix: send a template message instead. Retrying the same free-form message will fail again.

What does WhatsApp error 132001 mean?

Error 132001 (Template does not exist) means the template name and language combination in your request is not an approved template on your WhatsApp Business Account. Check the exact template name, check that the language code matches the approved translation exactly (for example en vs en_US), and confirm the status is APPROVED.

What does WhatsApp error 131026 mean?

Error 131026 (Message undeliverable) means WhatsApp could not deliver the message to that recipient. Common causes are that the number is not on WhatsApp, the user has not accepted the latest Terms of Service, or they are using an old WhatsApp version. Retrying straight away rarely helps- treat it as a recipient problem.

What does WhatsApp error 133010 mean?

Error 133010 (Account not registered) refers to your business phone number, not the recipient. It means the sending number is not registered on the Cloud API. Fix: register it with POST /{PHONE_NUMBER_ID}/register, then retry.

Which WhatsApp API errors should I retry?

Retry with exponential backoff only for throughput and temporary errors: 130429, 131016, 131000, 133004, and 5xx HTTP responses. Do not retry payload, template, or policy errors such as 131008, 131009, 131047, 132000, 132001, or 131050- they will fail again until you change the request.

About the author

Get Click Media creates practical resources for businesses using messaging, automation, analytics, and digital communication to improve customer engagement. This article was published on and was last reviewed on .

Related Articles

Explore more practical resources and insights related to WhatsApp.