WhatsApp error messages, decoded
Every message the connect screen can show you, what Meta actually said, and what to do about it.
When Meta refuses something, we show you the action rather than their wording — "(#100) Unsupported get request" is accurate and sends people to the wrong place. This page is the mapping, so you can search for either one.
| What we show you | Meta's code | What it means | What to do |
|---|---|---|---|
| That access token was rejected | 190, or HTTP 401 | The token is expired, revoked, or not a token | You are almost certainly using the temporary 24-hour token. Generate a permanent one |
| That phone number ID was not found on this app | 100 | The id is not one this token can see | You have probably pasted the phone number instead of the phone number ID. Copy the long numeric id from WhatsApp → API Setup |
| This token does not have permission to manage that number | 200, 10 | Authenticated, but not authorised for this asset | The system user is missing a permission or was not given access to the WhatsApp account. Re-check all three permissions and the asset grant |
| That recipient is not on the allow-list for this number | 131030 | Development mode delivers only to test recipients | Add the number as a test recipient in the Meta console, or move the app out of development mode once your business is verified |
| Meta is rate-limiting this number right now | 4, 80007, or HTTP 429 | Too many requests too quickly | Wait a minute. Nothing is broken and nothing is lost |
| Meta's API is not responding right now | any 5xx | Their side | Try again in a few minutes |
| Meta's API did not respond in time | — | Our request timed out | A network problem between us and Meta. Try again |
| Could not reach Meta's API | — | We could not connect at all | Usually transient. If it persists, it is on our side, not yours |
| Meta rejected the request | anything else | An error we have not mapped | Re-check all four values against WhatsApp → API Setup. If it keeps happening, tell us the exact wording |
The token was rejected
Meta code 190, or an HTTP 401. The token is expired, revoked, or not a token.
Nine times in ten it is the temporary token from the API Setup page, which lasts 24 hours. Generate a permanent one from a system user — Generate a permanent token — and check its expiry reads "Never" in Meta's Access Token Debugger.
Regenerating is the fix. There is nothing to repair about a rejected token.
The phone number ID was not found
Meta code 100. The id is not one this token can see.
Almost always a paste error: the phone number ID is not the phone number. It is the long numeric id underneath the displayed number on WhatsApp → API Setup.
If the id is right, the token is the problem — it belongs to a different app, or the system user was never given access to this WhatsApp account.
The token has no permission for that number
Meta codes 200 and 10. The token is perfectly valid and cannot see your number.
Regenerating it will not help. Two things to check on the system user, in this order:
- It has access to the assets — your app and your WhatsApp Business Account, with full control. A token generated before this grant will authenticate and see nothing.
- The token carries all three permissions:
business_management,whatsapp_business_management,whatsapp_business_messaging.
Missing the third is the classic "verifies fine, cannot send".
The recipient is not on the allow-list
Meta code 131030. Your app is in development mode, where Meta delivers only to numbers you have registered as test recipients.
Add the number as a test recipient in the Meta console, or move the app out of development mode — which needs your business portfolio verified first (Add and verify your phone number).
Nothing is wrong with your credentials. This one is a restriction, not a fault.
Meta is rate-limiting you
Codes 4 and 80007, or an HTTP 429. Too many requests too quickly.
Wait a minute. Nothing is broken, nothing is lost, and there is nothing to change.
Something else
If Meta answered 5xx, it is their side and it passes. If we could not reach them at all — a timeout or a network failure — nothing was recorded as failed and your stored credentials are untouched, so press the button again.
For anything else, re-check all four values against WhatsApp → API Setup. If the same message keeps coming back, tell us the exact wording: an unmapped Meta code is something we want to add to this page.
Reading them properly
A token error and a permission error are different problems. "Rejected" means the token is not valid. "Does not have permission" means it is valid and cannot see your number.
A timeout is not a rejection. Nothing is recorded as failed. Press the button again.
Nothing here ever includes your token. These messages, and our logs, carry Meta's numeric code and nothing else. If you are pasting an error to someone for help, it is safe to paste the whole thing.
When the error is silence
None of the above covers the failure where there is no error at all: messages send fine and nothing ever arrives. That one has its own article — Webhooks: why messages arrive, and why they sometimes don't.
Was this helpful?