Instagram error 200: Permission error - app not live for this recipient
Last verified against Meta for Developers - Messenger Platform error codes
Permission Error: Cannot message users who are not admins, developers or testers of the app until pages_messaging permission is reviewed and the app is live.What error 200 means
Code 200 is the Graph API's permission-error family (Meta groups 200-299 together as "Permission error"). For messaging apps the documented base form is the one that defines the Development-mode wall: you "cannot message users who are not admins, developers or testers of the app" until the messaging permission passes review and the app is live. This is the error behind almost every "it worked in testing, it fails in production" report that actually produces an error at all - the other half of that symptom is pure silence on inbound events, described in the troubleshooting guide.
Three switches all have to be on before strangers can be messaged: the app must be in Live mode, the messaging permission (instagram_manage_messages on the Messenger Platform route) must have Advanced Access, and for most apps Advanced Access requires completed Business Verification. Miss any one and code 200 (or its cousin 10) appears exactly when a non-role user is on the other end.
The subcodes refine the story: 1545041 is a recipient-availability refusal, and 2534041 means the Instagram account owner turned off message access for connected tools. Read the subcode before assuming App Review is the fix.
What it looks like
{
"error": {
"message": "(#200) Cannot message users who are not admins, developers or testers of the app until pages_messaging permission is reviewed and the app is live.",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "Sv4wX9yZ2aBc"
}
}Why it happens
- The app is still in Development mode, so only accounts with roles on the app can exchange messages with it.
- The messaging permission has Standard Access only - App Review was never completed for Advanced Access.
- Business Verification is pending or failed, blocking the Advanced Access grant.
- A test account was expected to work but its Instagram Tester invitation was never accepted in the Instagram app.
- The token was issued before the permission's access level changed and has not been refreshed since.
How to fix Instagram error 200
- 1Check App Dashboard > App Review > Permissions & Features: the messaging permission must show Advanced Access, and the app toggle must be Live.
- 2Complete Business Verification in Business Manager if the review flow requires it.
- 3For pre-launch testing, add real test users as Instagram Testers (App roles > Roles) and have them accept the invite under Instagram Settings > Apps and Websites > Tester invites.
- 4Re-run the login flow after access levels change so tokens reflect the new grants.
- 5Retest with an account that has no role on the app - admin accounts cannot reproduce this error.
How to stop it recurring
Make go-live a checklist, not a hope: Live mode, Advanced Access on every messaging-path permission, Business Verification done, and a smoke test from a fresh account with no app role. Keep a permanent tester account (invitation accepted) in your team so pre-release builds are exercised the way customers will hit them. The permission matrix and review requirements are summarized in the limits reference, and the Messenger-side twin of this wall is covered in the Messenger guide.
Official reference: Meta for Developers - Messenger Platform error codes. See all Instagram error codes or the Instagram limits and quotas.
Related codes
- 10: Application does not have permission for this action(#10) Application does not have permission for this action
- 200: This person isn't available right nowMessage Not Sent: This person isn't available right now.
- 200: Account owner has disabled access to direct messagesThe account owner has disabled access to instagram direct messages.
- 190: Invalid OAuth access tokenAccess Token Error: Invalid OAuth access token.
Error 200 - quick answers
What does Instagram error 200 mean?
Code 200 is the Graph API's permission-error family (Meta groups 200-299 together as "Permission error"). For messaging apps the documented base form is the one that defines the Development-mode wall: you "cannot message users who are not admins, developers or testers of the app" until the messaging permission passes review and the app is live.
How do I fix Instagram error 200?
1. Check App Dashboard > App Review > Permissions & Features: the messaging permission must show Advanced Access, and the app toggle must be Live. 2. Complete Business Verification in Business Manager if the review flow requires it. 3. For pre-launch testing, add real test users as Instagram Testers (App roles > Roles) and have them accept the invite under Instagram Settings > Apps and Websites > Tester invites. 4. Re-run the login flow after access levels change so tokens…
Stop debugging Instagram by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.