Error 190 · HTTP 401
Access token expired or invalid
An account outage that will disguise itself as thousands of contact failures.
Cause. The token itself is no longer valid. Every send on this phone number will fail identically until the WABA is reconnected.
Fix. Reconnect the WhatsApp Business Account and store a new token. Do not retry and do not suppress the contact: nothing about this message is wrong, so failing contacts one at a time hides an account-level outage behind thousands of per-contact errors.
One cause, every message
The access token is invalid or expired. Every send on the line will fail identically until the WhatsApp Business Account is reconnected; nothing about any individual message or recipient is wrong.
The failure mode worth designing against
A platform that handles errors per-contact will record thousands of individual failures and, if it suppresses on permanent errors, quietly mark a large part of the audience unreachable. The dashboard fills with contact-level problems while the actual problem is one expired credential.
So the right response is an alert, deduplicated to one, not a per-message outcome. Retrying does nothing and suppressing does worse than nothing.
Handling
Raise an account-level alarm and stop the queue. Reconnect the WABA and store a new token. Do not suppress recipients, and do not let a campaign tail generate one alert per message.
The whole table, free
Every code we document, with the handling decision each one implies, as an open dataset. The flags are generated by running the same classifier our production send path uses, so it cannot describe behaviour the software does not have. CC-BY, CORS open.
Codes that get confused with this one
- 130429 · Rate limit hit
- 131026 · Message undeliverable
- 131049 · Per-user marketing cap
- 131056 · Pair rate limit hit
- 133010 · Sending number not registered
All WhatsApp Cloud API error codes →
Errors are one way Meta changes what your integration does. The other is policy: on 1 October 2026 replies inside an open window start being billed, and usernames have already begun removing the phone number from inbound webhooks. What Meta is changing next →