0 App user could not be authenticated
What actually causes it
The token expired, was invalidated, or the app user changed a privacy or app setting that blocks access.
What to do
Issue a new access token and verify the app user still grants access.
FREE DEVELOPER REFERENCE · NO SIGNUP
Search every row in Meta's current WhatsApp Business Platform error reference. Each entry tells you what actually triggers the code and what to check next—not just the title Meta returns.
Scope: every row listed in Meta's WhatsApp-specific reference as checked on 13 August 2026. The Cloud API sits on Graph API, so an endpoint can also return a generic Graph API error not listed on that WhatsApp page.
ERROR LOOKUP
Search a code, title, symptom or cause. Repeated codes remain separate because the same number can mean different things in different operations.
Showing all 94 documented cases
Tokens, permissions and endpoint eligibility.
0 What actually causes it
The token expired, was invalidated, or the app user changed a privacy or app setting that blocks access.
What to do
Issue a new access token and verify the app user still grants access.
3 What actually causes it
The token does not carry a permission required by this endpoint, or the app cannot use the capability.
What to do
Inspect the token with Meta's Access Token Debugger and compare its permissions with the endpoint requirements.
10 What actually causes it
A required permission is absent or revoked; the app may be ineligible for the endpoint. For a Flow endpoint public key, the phone number may not be allowlisted.
What to do
Debug the token, confirm product eligibility, and check the Flow phone-number allowlist when applicable.
190 What actually causes it
The access token is no longer valid, most commonly because its lifetime ended.
What to do
Generate and use a new token.
200 What actually causes it
Certain GET endpoints received no token and return “Provide valid app ID”; other endpoints can report 190 or 104 for the same omission.
What to do
Add a valid access token to the request. Do not treat this as the expired-token case.
200–299 What actually causes it
The endpoint's required permission was never granted or has since been removed.
What to do
Use the Access Token Debugger and restore the exact permission required by the endpoint.
Policy restrictions, country restrictions and locked accounts.
368 What actually causes it
Meta restricted or disabled the WhatsApp Business Account for a platform-policy violation.
What to do
Open the account's policy-enforcement details and resolve or appeal the recorded violation.
130497 What actually causes it
The business category is not permitted to message users in the recipient's country.
What to do
Check the WhatsApp Business Messaging Policy for the category and country; do not retry to an ineligible destination.
131031 What actually causes it
The WABA is policy-restricted, disabled, or the request data does not match account data—for example, an incorrect two-step verification PIN.
What to do
Check Policy Enforcement and the Health Status API, then correct any mismatched account data before retrying.
Validation failures while creating or editing message templates.
2388039 What actually causes it
An edit was attempted while the template is in a non-editable status, commonly while review is still pending; daily edit limits also apply.
What to do
Wait for approval or rejection, then edit only when the status permits it.
2388040 What actually causes it
At least one template field is longer than Meta allows for that component or format.
What to do
Use the response details to identify the field and shorten it to the stated limit.
2388047 What actually causes it
The header component does not follow the accepted format for its selected header type.
What to do
Read the response details, then correct the header type, content or variable formatting.
2388072 What actually causes it
The message body contains formatting or variables that fail template validation.
What to do
Use the response details to locate and repair the invalid body formatting.
2388073 What actually causes it
The footer contains a value or formatting pattern Meta does not accept.
What to do
Use the response details to correct or remove the invalid footer content.
2388293 What actually causes it
The template has more variables than its amount of fixed explanatory text can support.
What to do
Remove variables or add enough fixed text to make each variable's meaning clear.
2388299 What actually causes it
A variable appears at the very beginning or end of the template.
What to do
Place fixed contextual text before the first variable and after the last one.
Account-level limits encountered while adding templates.
2388019 What actually causes it
The WABA already has the maximum number of message templates allowed for its current limit.
What to do
Delete templates that are no longer needed or review Meta's current template-limit rules before adding another.
Errors returned while moving a business phone number between WABAs.
2388012 What actually causes it
The number being migrated is already attached to the destination WhatsApp account.
What to do
Use a number that is not already present or inspect the existing attachment instead of migrating it again.
2388091 / 2388093 What actually causes it
The ownership-verification API was called for a number that Meta does not consider to be in the migration flow.
What to do
Use the normal phone registration and verification process.
2388103 What actually causes it
No app is subscribed to webhooks on the destination WABA.
What to do
Subscribe the destination WABA to the app's webhooks, then retry the migration.
2388103 What actually causes it
Meta considers the number eligible for direct registration, so the migration API is the wrong flow.
What to do
Register and verify the phone number directly.
2388103 What actually causes it
The number lacks an approved display name or still has a pending display-name change.
What to do
Obtain display-name approval and clear any pending name change before migrating.
2388103 What actually causes it
The source WABA or its messaging-on-behalf-of relationship is not approved; it may use the deprecated OBO ownership model.
What to do
Confirm both approvals. Contact Meta support if the account still uses the deprecated ownership model.
2388103 What actually causes it
The WABA has no active credit line for post-migration messaging.
What to do
Set up an active credit line and share it with the business customer.
2388103 What actually causes it
Meta could not complete the number migration but did not expose a more specific cause in this row.
What to do
Retry later; if it repeats, keep the trace ID and contact Meta support.
2388103 What actually causes it
The source and destination WABAs do not represent the same business.
What to do
Choose a destination WABA that messages for the same business as the source.
2388103 What actually causes it
The destination WABA has not completed the required business verification and account review.
What to do
Complete business verification and wait for the WABA review status to become approved.
2388103 What actually causes it
The destination WABA's client has not accepted the Messaging For relationship.
What to do
Ask the client to approve the request in Meta Business Suite.
2494100 What actually causes it
The business phone number is temporarily under Meta maintenance.
What to do
Wait a few minutes, then retry.
Availability and configuration of template analytics.
200005 What actually causes it
Meta has not made template insights available for this WABA yet.
What to do
There is no account-side switch that can force availability; check again later.
200006 What actually causes it
The WABA already enabled template insights, and Meta does not permit turning the feature off afterward.
What to do
Leave insights enabled; the operation is irreversible for this account.
200007 What actually causes it
An insights-dependent operation was requested before the WABA enabled template insights.
What to do
Enable template analytics first, then retry.
Legacy OBO ownership and transfer failures.
2593079 What actually causes it
The account has already been assigned to migrate to a different solution ID under the deprecated OBO model.
What to do
Contact Meta support; do not create a competing migration attempt.
2593085 What actually causes it
The WABA is already customer-owned under sharing, or the customer has not accepted the OBO request.
What to do
Confirm ownership and acceptance, then contact support because OBO ownership is deprecated.
Contact and message-history sync limits during onboarding.
2593107 What actually causes it
The number already used its one contacts sync or one messaging-history sync call.
What to do
Offboard and re-onboard the customer before attempting a new synchronization.
2593108 What actually causes it
The request was made more than 24 hours after onboarding the WhatsApp Business app user.
What to do
Offboard and re-onboard the user, then synchronize inside the 24-hour window.
App, WABA, throughput, quality and pair-rate controls.
4 What actually causes it
The Meta app exceeded its application-level API request allowance.
What to do
Confirm the limit in App Dashboard, reduce request frequency or volume, and retry after the limit recovers.
80007 What actually causes it
The WhatsApp Business Account exceeded its allowed API request rate.
What to do
Reduce WABA-level request volume and retry later with backoff.
130429 What actually causes it
The sender reached its message-throughput ceiling, independent of ordinary Graph API call limits.
What to do
Queue and slow sends, then retry after capacity becomes available.
131048 What actually causes it
Meta restricted sends from the phone number after prior messages were blocked or reported as spam.
What to do
Stop bulk retries and inspect the phone number's quality status and template quality in WhatsApp Manager.
131056 What actually causes it
The same sender sent too many messages to the same recipient in a short period.
What to do
Pause messages to that recipient; other recipients can still be messaged.
133016 What actually causes it
The number hit its registration or deregistration attempt limit and is temporarily blocked.
What to do
Wait for the block to clear before trying registration again.
131064 What actually causes it
Repeated template-category violations triggered a temporary account messaging limit that affects templates and direct-send messages.
What to do
Correct template classifications and wait for Meta's enforcement period to end.
Request, delivery, media, template-send, Flow, registration and payment failures.
1 What actually causes it
The request is malformed, does not meet the endpoint contract, or Meta is experiencing a server problem.
What to do
Check platform status first, then validate the request against the endpoint reference.
2 What actually causes it
A Meta service is down or overloaded.
What to do
Check platform status and retry with backoff after service recovers.
33 What actually causes it
The phone number ID refers to a business number that was deleted.
What to do
Confirm that the ID points to an existing business phone number.
100 What actually causes it
A parameter name is unknown, misspelled, too long, or invalid for the endpoint. Flow public keys can also cause this when they are not valid 2048-bit RSA PEM keys.
What to do
Compare names, types and limits with the endpoint reference; also verify the stored phone-number ID and Flow key when relevant.
130403 What actually causes it
The sending business has blocked the intended recipient on WhatsApp.
What to do
Do not retry until the business explicitly unblocks that user.
130472 What actually causes it
Meta withheld the message because the recipient is in a marketing-message experiment cohort.
What to do
Treat it as not sent and consult Meta's Marketing Message Experiment rules.
131000 What actually causes it
Meta could not classify the send failure. For a Flow public key operation, signature calculation, GraphQL access, or the GraphQL response may have failed.
What to do
Retry once; if it persists, preserve the trace ID and open a Meta support ticket.
131005 What actually causes it
The token lacks a permission required by the operation.
What to do
Inspect the token and restore the endpoint's required permission.
131008 What actually causes it
A mandatory request field was omitted.
What to do
Add the missing field named in details and verify all endpoint requirements.
131009 What actually causes it
A supplied value is outside the endpoint's supported values, or the referenced phone number is not correctly attached.
What to do
Use error details to identify the value, then compare it with the endpoint and phone-number setup documentation.
131016 What actually causes it
A dependency needed for the operation is temporarily unavailable.
What to do
Check platform status and retry later with backoff.
131021 What actually causes it
The destination phone number is the same as the sending business number.
What to do
Send to a different WhatsApp number.
131026 What actually causes it
Meta uses this bucket when the destination is not a WhatsApp number, the user has not accepted current terms, or the user's WhatsApp client is too old.
What to do
Using another channel, ask the recipient to message the business, accept current terms and update WhatsApp. The code does not reveal which cause applied.
131037 What actually causes it
The 555 test business phone number does not have an approved display name.
What to do
Change the number's display name and obtain approval.
131042 What actually causes it
Billing is incomplete or unusable: no attached payment account, exhausted or inactive credit line, deleted or suspended WABA, missing timezone or currency, or an unapproved Messaging For request.
What to do
Open WABA billing and fix the specific account, credit-line, currency, timezone or relationship issue shown there.
131045 What actually causes it
The sender number is not registered correctly for the WhatsApp Business Platform.
What to do
Register the phone number, then retry the message.
131047 What actually causes it
The recipient has not replied to this sender in the last 24 hours, so a free-form service message is not allowed.
What to do
Use an approved template to re-engage the recipient.
131049 What actually causes it
Meta suppressed a marketing template under its per-user marketing-message limits.
What to do
Do not retry immediately; wait at least 24 hours and expect the limit duration to vary.
131050 What actually causes it
The user opted out of marketing templates from this business.
What to do
Suppress marketing sends to that recipient and use the user_preferences webhook to track a later opt-in.
131051 What actually causes it
The payload requests a message type the Cloud API does not support.
What to do
Change the payload to a currently supported message type.
131052 What actually causes it
Meta could not retrieve the media attached to the user's inbound message.
What to do
Read webhook error details and ask the user through another channel to resend or share the file another way.
131053 What actually causes it
The media upload failed, commonly because the file's real MIME type or format is unsupported.
What to do
Inspect the file itself—not only its extension—and use a supported MIME type and format.
131057 What actually causes it
The account is temporarily under maintenance, which can occur during a throughput upgrade.
What to do
Wait until maintenance ends before retrying.
131063 What actually causes it
The WABA setting disable_marketing_messages_on_cloud_api is true while the template is categorized as marketing.
What to do
Send through the Marketing Messages API or re-enable marketing templates on Cloud API.
132000 What actually causes it
The send payload provides a different number of parameter values from the template's declared variables.
What to do
Supply exactly one correctly ordered value for every template variable.
132001 What actually causes it
The named template is unapproved, absent, or unavailable in the requested locale.
What to do
Confirm approval status, exact template name and exact language code.
132005 What actually causes it
The selected translation exceeds a component limit or is not in a usable translated state.
What to do
Inspect that language version in WhatsApp Manager and shorten or complete the translation.
132007 What actually causes it
Meta's review determined that the template content breaches a WhatsApp policy.
What to do
Open the rejection details, compare the content with template-review and policy rules, then edit or appeal with samples.
132012 What actually causes it
A parameter value does not match the component type or format declared by the approved template.
What to do
Match every runtime parameter to the template's required type and position.
132015 What actually causes it
Negative user feedback reduced template quality enough for Meta to pause sends.
What to do
Improve the content and wait until the edited template is approved and active.
132016 What actually causes it
The template was paused repeatedly for low quality and can no longer be reactivated.
What to do
Create a materially improved new template rather than resending the disabled one.
132068 What actually causes it
The Flow referenced by the template is in a blocked state.
What to do
Fix the Flow's reported issue and return it to an eligible state.
132069 What actually causes it
A throttled Flow already sent 10 messages in the preceding hour.
What to do
Correct the Flow issue and wait for the hourly throttle window to clear.
133000 What actually causes it
The number has an unresolved failed deregistration attempt.
What to do
Deregister the number successfully before attempting registration.
133004 What actually causes it
Meta's registration service is temporarily unavailable.
What to do
Check platform status and response details, then retry later.
133005 What actually causes it
The six-digit PIN does not match the number's two-step verification setting.
What to do
Use the correct PIN or reset two-step verification and set a new one.
133006 What actually causes it
Registration was attempted before phone ownership verification completed.
What to do
Verify ownership of the number, then register it.
133008 What actually causes it
Repeated incorrect two-step PIN attempts triggered a temporary limit.
What to do
Wait for the duration given in the response details before trying again.
133009 What actually causes it
Two-step PIN attempts were submitted faster than Meta permits.
What to do
Wait for the interval specified in response details.
133010 What actually causes it
The number has not been registered on the WhatsApp Business Platform, even if it exists in Business Manager.
What to do
Complete the platform registration call before using the number.
133015 What actually causes it
The phone number was deleted recently and Meta has not completed deletion.
What to do
Wait at least five minutes, then retry.
134011 What actually causes it
The WABA has not accepted the WhatsApp Payments terms required for this operation.
What to do
Use the link in the error to accept the terms before retrying.
135000 What actually causes it
The request parameters fail validation, but Meta did not identify the exact parameter in the code title.
What to do
Validate request syntax against the endpoint reference and contact support if the response details do not resolve it.
Errors specific to Meta's separate Marketing Messages API for WhatsApp.
100 What actually causes it
The Marketing Messages API received a non-template payload.
What to do
Send a marketing template message instead.
131009 What actually causes it
A parameter is unsupported, or a newly connected ad has not finished synchronizing.
What to do
Validate the parameter; if ad sync is involved, wait 10 minutes before retrying.
131055 What actually causes it
The request contains a free-form message or a utility or authentication template.
What to do
Use a template categorized as marketing.
134100 What actually causes it
A utility or authentication template was submitted to a marketing-only endpoint.
What to do
Send only a MARKETING template through this API.
134101 What actually causes it
A newly created template has not completed ad synchronization, which can take up to 10 minutes.
What to do
Wait 10 minutes, then retry the same approved marketing template.
134102 What actually causes it
Template ad synchronization failed or the WABA is not eligible and onboarded for the Marketing Messages API.
What to do
Check marketing_messages_lite_api_status; if it is ONBOARDED and the error continues, contact Meta support.
132018 What actually causes it
The runtime parameters do not satisfy the selected template's configuration.
What to do
Use the returned validation details to correct the parameters and resend.
1752041 What actually causes it
Another partner already invited this business customer to onboard; only the first partner request is accepted.
What to do
Do not submit another request. Eligible WABAs are included in the existing onboarding process.
Try a shorter code, a symptom such as “media”, or switch back to all groups.
DIAGNOSIS ORDER
Read error.code first, then error_data.details.
Meta says the details field is the place most likely to identify the bad
parameter, accepted value, or underlying condition. Titles are being
deprecated, and error_subcode is already deprecated for
Graph API v16.0 and later.
messages webhook failures.code, then use details to distinguish bucket errors such as 131026.fbtrace_id for Meta support, but redact tokens, phone numbers and message content from ordinary logs.TEMPLATE REJECTIONS
The status webhook's reason is a broad classification. For
INVALID_FORMAT, newer payloads can also include
rejection_info.reason and a specific recommendation.
ABUSIVE_CONTENT Meta found policy-violating content.
Inspect: Threats, harassment, pressure, prohibited commerce or requests for sensitive identifiers.
CATEGORY_NOT_AVAILABLE Deprecated An authentication template targeted a region where that category was unavailable.
Inspect: Legacy regional eligibility. Meta marks this reason as deprecated.
INCORRECT_CATEGORY The submitted category does not match what the message actually does.
Inspect: Promotional language inside utility content, or a non-authentication purpose submitted as authentication.
INVALID_FORMAT The template structure or variables are invalid.
Inspect: Braces, variable order, adjacent variables, dangling variables, component limits and component-specific formats.
NONE No rejection reason; Meta uses this value for events such as a pause.
Inspect: Read the webhook event and other_info instead of treating NONE as a rejection.
PROMOTIONAL Meta found policy-violating promotional content.
Inspect: The policy details and whether the content or category attempts to bypass marketing rules.
SCAM Meta found content resembling a scam or otherwise violating policy.
Inspect: Misleading claims, impersonation, deceptive urgency, suspicious payment requests or prohibited offers.
TAG_CONTENT_MISMATCH The template content does not match the category tag chosen at creation.
Inspect: The real purpose of the full message, including header, body, footer and buttons.
NONE is part of the documented
reason value set, but it is not a rejection. Check the webhook's
event before routing a template into a rejection workflow.
PRE-SUBMISSION CHECK
Cause: Positional variables are missing braces or use mismatched braces instead of the {{1}} form.
Fix: Correct every opening and closing brace before resubmitting.
Cause: A variable token itself contains characters such as #, $ or %.
Fix: Keep the placeholder token numeric and put punctuation in fixed text outside it.
Cause: Positional variables skip or scramble numbers, such as {{1}}, {{2}}, {{5}}, {{4}}.
Fix: Number placeholders once, in ascending order, without gaps.
Cause: There is too little fixed text to explain what each variable represents.
Fix: Remove variables or add descriptive fixed wording around them.
Cause: The message begins or ends with a variable.
Fix: Add meaningful fixed text before and after the variable.
Cause: The template's offer, description, price, fee, tax, disclosure or related media concerns a transaction that does not comply with WhatsApp's Commerce Policy.
Fix: Remove the prohibited transaction or make the entire offer and disclosure compliant—not only the body text.
Cause: The message asks for full payment-card or financial-account numbers, national identifiers, other sensitive identifiers, or documents that can expose them.
Fix: Do not collect sensitive identifiers in WhatsApp; partial identifiers can be used only where policy permits them.
Cause: The message threatens legal action, public shaming or another abusive consequence.
Fix: Remove coercive language and use a neutral, factual service message.
Cause: A component exceeds the character or emoji allowance for that template format and tag.
Fix: Use the component-specific limit returned by Meta and shorten the content.
Cause: The body and footer repeat the wording of an existing template. Meta does not apply this duplicate check to authentication templates.
Fix: Reuse the existing template or make the new body or footer genuinely distinct.
Last updated