How WhatsApp reports errors
Meta’s Cloud API is built on the Graph API, so every error follows the same shape:- The
codeis what matters. Build your understanding around the numericcodeand thedetailstext. The human-readable title insidemessage(for example Rate limit hit) is informational and Meta plans to deprecate titles eventually. - Errors arrive two ways. Some come back immediately as the API response when a send is rejected outright. Others arrive later through a webhook, when a message was accepted but then failed to deliver (the recipient blocked you, their number is not on WhatsApp, and so on). Invent listens to both and attaches the reason to the chat or broadcast recipient.
fbtrace_idis your support ticket key. If you ever escalate to Meta Direct Support, include this value. It lets them find the exact request.
Codes you’ll most likely see
These are the handful that come up in normal day-to-day use of WhatsApp in Invent.130497: Business account is restricted from messaging users in this country
130497: Business account is restricted from messaging users in this country
131047: More than 24 hours since the recipient last replied
131047: More than 24 hours since the recipient last replied
131026: Message undeliverable
131026: Message undeliverable
131050: Recipient has opted out of marketing messages
131050: Recipient has opted out of marketing messages
131049: Not sent to maintain healthy ecosystem engagement
131049: Not sent to maintain healthy ecosystem engagement
131056: Too many messages to the same recipient too fast
131056: Too many messages to the same recipient too fast
132001: Template does not exist or is not approved
132001: Template does not exist or is not approved
132007: Template content violates a WhatsApp policy
132007: Template content violates a WhatsApp policy
132015 / 132016: Template paused or permanently disabled for low quality
132015 / 132016: Template paused or permanently disabled for low quality
132015 means the template was paused because recipients reacted poorly (blocks, reports, low read rates). Improve the content and it can be re-enabled once approved. 132016 means it was paused too many times and is now permanently disabled. Create a fresh template with better content.80007 / 130429 / 131048 / 131064: Rate, throughput, and quality limits
80007 / 130429 / 131048 / 131064: Rate, throughput, and quality limits
- 80007: your WhatsApp Business account hit its messaging rate limit. Retry later or send less frequently.
- 130429: Cloud API throughput limit reached. Same fix: spread sends out over time.
- 131048: sends are restricted because too many earlier messages were blocked or flagged as spam. Check your quality rating in WhatsApp Manager.
- 131064: messaging limit reached due to template classification violations. Make sure your templates are categorized correctly (marketing vs utility vs authentication).
190 / 368: Token expired or account restricted
190 / 368: Token expired or account restricted
131042: Payment / billing problem
131042: Payment / billing problem
130403: You blocked this user
130403: You blocked this user
Full error code reference
Every code from Meta’s Cloud API error reference, grouped the way Meta groups them. The common ones above are repeated here for completeness.Authorization errors
These mean the request was not allowed to run at all, usually a token or permission problem. In Invent the fix is almost always to reconnect the WhatsApp connection.| Code | What it means | What to do |
|---|---|---|
0 | Could not authenticate the app user. The access token expired, was invalidated, or a setting blocks access. | Reconnect WhatsApp to get a fresh token. |
3 | A capability or permission is missing for this request. | Confirm the connection was authorized with all required permissions; reconnect if needed. |
10 | A required permission was never granted or has been removed. | Re-run the connect flow and grant all requested permissions. Check you are eligible for the endpoint being used. |
190 | The access token has expired. | Reconnect WhatsApp from Settings → Connections. |
200 | No access token was provided on a request that requires one. | Reconnect WhatsApp. (Distinct from 190, which is an expired token.) |
200–299 | A permission is not granted or was removed. | Re-authorize the connection with the required permissions. |
Integrity errors
Account-level enforcement. These block sending until the underlying issue is resolved with Meta.| Code | What it means | What to do |
|---|---|---|
368 | The WhatsApp Business Account was restricted or disabled for violating a platform policy. | Review Meta’s Policy Enforcement page, resolve the violation in WhatsApp Manager. |
130497 | The account is restricted from messaging users in certain countries (the Brazil / Indonesia cross-country restriction). | See the full explanation and country table. No override; use a locally-registered account to reach those users. |
131031 | The account was restricted or disabled for a policy violation, or request data (such as the two-step PIN) could not be verified. | Check Policy Enforcement and the Health Status API. Verify any PIN or credentials in the request. |
Throttling and rate limits
Everything here means send slower or improve quality. None require a structural fix, only pacing.| Code | What it means | What to do |
|---|---|---|
4 | The app hit its overall API call rate limit. | Retry later or reduce request frequency. |
80007 | The WhatsApp Business Account hit its rate limit. | Retry later or send less frequently. |
130429 | Cloud API message throughput limit reached. | Spread sends out over time. |
131048 | Sends are restricted because too many earlier messages were blocked or flagged as spam. | Check quality status in WhatsApp Manager; improve template quality. |
131056 | Too many messages to the same recipient in a short period. | Wait and retry that contact; other numbers are unaffected. |
131064 | Messaging limit reached due to template classification violations. | Ensure templates are categorized correctly; the limit lifts after the enforcement period. |
133016 | Too many register / deregister attempts for this number in a short period. | Wait until the number is unblocked, then retry. |
Sending and delivery errors
The most common day-to-day failures when a specific message cannot be delivered.| Code | What it means | What to do |
|---|---|---|
130403 | You blocked this user, so the message cannot be delivered. | Do not retry; unblock the user to resume. |
130472 | Message was not sent as part of a marketing experiment. | Expected for the Marketing Message Experiment; no action. |
131021 | Sender and recipient phone numbers are the same. | Send to a number different from the sender. |
131026 | Undeliverable: recipient is not on WhatsApp, has not accepted the latest Terms, or is on a very old app version. | Confirm the number is correct and on WhatsApp; nothing to fix if they do not use WhatsApp. |
131045 | Send failed due to a phone number registration error. | Ensure the number is registered before sending. |
131047 | More than 24 hours since the recipient last replied. | Send an approved template to re-open the conversation. |
131049 | Held back to maintain healthy ecosystem engagement (per-user marketing limit). | Wait at least 24 hours before resending. |
131050 | Recipient opted out of marketing messages from your business. | Do not retry; you may still send utility / authentication templates. |
131051 | Unsupported message type. | Use a supported message type. |
131052 | Could not download media the user sent. | Ask the user to resend the file by another method; check error_data.details. |
131053 | Could not upload the media in your message (often an unsupported type). | Verify the file’s MIME type is supported; inspect with file -I. |
131057 | The account is in maintenance mode (for example a throughput upgrade). | Wait and retry. |
131063 | Template is Marketing, but marketing templates are disabled for this Cloud API config. | Re-enable marketing on Cloud API, or use the Marketing Messages API. |
134011 | Send blocked: WhatsApp Payments Terms of Service acceptance is pending. | Accept the Payments ToS via the link in the error, then retry. |
Template errors
Creating, sending, and quality issues with message templates.| Code | What it means | What to do |
|---|---|---|
2388040 | A template field exceeded its character limit. | Shorten the field named in the error. |
2388047 | Message header format is invalid. | Fix the header formatting per the error detail. |
2388072 | Message body format is invalid. | Fix the body formatting per the error detail. |
2388073 | Message footer format is invalid. | Fix the footer formatting per the error detail. |
2388293 | Too many variables for the template’s length. | Reduce variables or lengthen the message. |
2388299 | A variable sits at the very start or end of the template. | Move variables away from the leading / trailing position. |
2388019 | Reached the maximum number of templates for this account. | A WABA allows up to 250 templates; delete unused ones. |
132000 | Variable count in the request did not match the template definition. | Send a value for every variable the template defines. |
132001 | Template does not exist in that language, or is not approved. | Check the name and locale; confirm the template is approved. |
132005 | Translated text is too long. | Shorten the translation; verify it in WhatsApp Manager. |
132007 | Template content violates a WhatsApp policy. | Edit to comply and resubmit for review. |
132012 | Variable values formatted incorrectly. | Match the format the template specifies. |
132015 | Template paused for low quality. | Improve the content; it can return once re-approved. |
132016 | Template permanently disabled after being paused too many times. | Create a new template with better content. |
132068 | Flow is in a blocked state. | Correct the Flow. |
132069 | Flow is throttled (10 messages already sent in the last hour). | Correct the Flow and wait. |
Template insights errors
Niche; only relevant if you toggle template analytics directly.| Code | What it means | What to do |
|---|---|---|
200005 | Template insights not available yet for this account. | Cannot be enabled at the moment. |
200006 | Template insights cannot be disabled once enabled. | No action; this is by design. |
200007 | Template insights are not enabled for this account. | Enable them via Confirming template analytics. |
Phone number registration and migration errors
These appear during number setup and migration between accounts, not during normal messaging.| Code | What it means | What to do |
|---|---|---|
33 | The business phone number has been deleted. | Verify the number is correct. |
133000 | A previous deregistration attempt failed. | Deregister the number again before registering. |
133004 | Server temporarily unavailable. | Check the Platform Status page and retry. |
133005 | Two-step verification PIN incorrect. | Verify the PIN; reset it by disabling and re-enabling two-step verification. |
133006 | Number must be verified before registering. | Verify and register the number. |
133008 | Too many two-step PIN guesses. | Wait the period stated in details. |
133009 | Two-step PIN entered too quickly. | Check details and slow down. |
133010 | Number is not registered on the platform. | Register the number first. |
133015 | The number was recently deleted and deletion has not finished. | Wait 5 minutes and retry. |
2388012 | The number already exists in your account. | Use a number not already present. |
2388091 / 2388093 | Number not eligible to receive / verify a registration code (not being migrated). | Register and verify the number normally. |
2388103 | A migration failure with several possible causes (webhooks not set up, display name not approved, no payment account, wrong Business Manager, account not approved, “Messaging For” not approved, or a generic error). | Read the details text; it names the exact cause and fix. Some cases require contacting Meta support. |
2494100 | The number is in maintenance mode. | Try again in a few minutes. |
WhatsApp Business Account and ownership errors
Rare; tied to the deprecated On-Behalf-Of (OBO) ownership model.| Code | What it means | What to do |
|---|---|---|
2593079 | WABA already marked for migration to a different solution ID. | OBO is deprecated; contact Meta support. |
2593085 | WABA not eligible for OBO ownership transfer (already owned, or the request was not accepted). | OBO is deprecated; contact Meta support. |
Onboarding synchronization errors
Only relevant during Coexistence onboarding, when contacts and history sync.| Code | What it means | What to do |
|---|---|---|
2593107 | Exceeded the allowed number of synchronization calls for this number. | Offboard and re-onboard the business customer. |
2593108 | Synchronization can only run within 24 hours of onboarding. | Offboard and re-onboard the user. |
General and server errors
Catch-alls for malformed requests and platform outages.| Code | What it means | What to do |
|---|---|---|
1 | Invalid request or possible server error. | Check the Platform Status page; verify request formatting. |
2 | Temporary issue from downtime or overload. | Check Platform Status before retrying. |
100 | One or more unsupported or misspelled parameters. | Check parameter names, values, and length limits. |
131000 | Unknown error. | Retry; if it persists, open a Meta Direct Support ticket. |
131005 | Permission not granted or removed. | Re-authorize the connection. |
131008 | A required parameter is missing. | Add the required parameter. |
131009 | One or more parameter values are invalid. | Use supported values for each parameter. |
131016 | A service is temporarily unavailable. | Check Platform Status and retry. |
131037 | The sending number has no approved display name. | Get the display name approved in WhatsApp Manager. |
135000 | Unknown error with your request parameters. | Verify request syntax; contact support if it persists. |
Marketing Messages API errors
Only relevant if you use Meta’s Marketing Messages (MM) API, which reuses Cloud API codes plus these additions.| Code | What it means | What to do |
|---|---|---|
100 | The message must be a template message. | Send a marketing template, not a free-form message. |
131009 | Parameter value is not valid (or ad sync incomplete). | Verify parameters; if ad syncing, wait 10 minutes and retry. |
131055 | Only marketing template messages are supported here. | Send a marketing template, not utility / authentication or free-form. |
134100 | Only marketing messages are supported on this API. | Use a template categorized as Marketing. |
134101 | Your template is still syncing (up to 10 minutes after creation). | Wait a few minutes and resend. |
134102 | Template unavailable; ad sync failed or you are not onboarded. | Check eligibility; if marketing_messages_lite_api_status is ONBOARDED and it persists, contact support. |
132018 | Template validation error in the parameters. | Fix the parameters and resend. |
1752041 | Duplicate onboarding request; the client was already invited by a partner. | No action; all eligible WABAs onboard automatically. |
Still stuck?
- For send failures, the fastest signal is usually your quality rating and messaging limits in WhatsApp Manager.
- For account-level restrictions (
368,130497,131031), the resolution lives with Meta, not inside Invent. - When escalating to Meta, include the
fbtrace_idfrom the error so Direct Support can trace the exact request. - For connection or token issues (
0,190,200,131005), reconnect WhatsApp from Settings → Connections.