Instagram Messaging API · error code

Instagram error 190: Invalid OAuth access token

ConfigurationHTTP 401Access tokens & authentication

Last verified against Meta for Developers - Messenger Platform error codes

What Instagram returns
Access Token Error: Invalid OAuth access token.

What error 190 means

Code 190 is the Graph API's umbrella token failure: the credential on the request is expired, revoked, malformed, or otherwise not a live session. It is raised by Graph API authentication before any Instagram messaging logic runs, so nothing about your payload, recipient, or window is being evaluated. Meta's guidance for the base code is simply "Get a new access token."

The error_subcode carries the diagnosis. 463 is expiry, 460 is a password change or security invalidation, 467 is a token that was revoked or is otherwise invalid, 458 means the user has not logged into the app. Without a subcode, suspect the mundane causes first: a truncated or empty token variable, a token for the wrong app or wrong route (Instagram-Login token against Page endpoints), or a placeholder that survived from a code sample.

On Instagram the practical rule is that inbound webhooks keep flowing while 190 blocks every outbound call, because webhook delivery does not authenticate with your token. If both directions are dead, you likely have a subscription or toggle problem instead - see the webhook debugging guide.

Why it happens

  • The stored token expired or was invalidated (see subcodes 463, 460, 467 for the specific stories).
  • The Authorization header or access_token parameter is empty, truncated, or still a placeholder string.
  • The token belongs to a different app or to the other Instagram API route than the endpoint being called.
  • The app secret was reset in the App Dashboard, invalidating tokens tied to it.
  • The user deauthorized the app from their Facebook or Instagram settings.

How to fix Instagram error 190

  1. 1Run the token through the Access Token Debugger and read why it is invalid - expiry, wrong app, or revocation are all shown.
  2. 2Re-run the login flow to mint a new token, exchange it for a long-lived one, and re-derive the Page token if you are on the Messenger Platform route.
  3. 3Log the exact error_subcode and branch your recovery on it: 463/467 mean refresh or reconnect, 460 means a human must log in again.
  4. 4Print the token length at startup to catch truncation and empty-string bugs before they reach Meta.
  5. 5After replacing the token, verify with a harmless GET before re-enabling automated sends.

How to stop it recurring

Never let a token be an anonymous string: store its type, issuing user, scopes, and expiry next to it, refresh long-lived tokens on a monitored schedule, and fail deployment if the configured token is invalid at boot. Alert on the first 190 in production - every hour of delay is an hour of silent non-delivery. The subcode-by-subcode fixes are under 190/463 and 190/460, and the lifecycle is walked through in the troubleshooting guide.

Official reference: Meta for Developers - Messenger Platform error codes. See all Instagram error codes or the Instagram limits and quotas.

Related codes

Error 190 - quick answers

What does Instagram error 190 mean?

Code 190 is the Graph API's umbrella token failure: the credential on the request is expired, revoked, malformed, or otherwise not a live session. It is raised by Graph API authentication before any Instagram messaging logic runs, so nothing about your payload, recipient, or window is being evaluated. Meta's guidance for the base code is simply "Get a new access token." The error_subcode carries the diagnosis.

How do I fix Instagram error 190?

1. Run the token through the Access Token Debugger and read why it is invalid - expiry, wrong app, or revocation are all shown. 2. Re-run the login flow to mint a new token, exchange it for a long-lived one, and re-derive the Page token if you are on the Messenger Platform route. 3. Log the exact error_subcode and branch your recovery on it: 463/467 mean refresh or reconnect, 460 means a human must log in again. 4. Print the token length at startup to catch truncation and…

Stop debugging Instagram by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.