Hari

Meta App Review Rejected? The 9 Real Reasons and How to Fix Each

The rejection reasons Meta reviewers actually use, what each one means in plain language, and the specific fix that gets the permission approved on resubmission.

A Meta App Review rejection reads like a form letter, but each one points at something specific the reviewer could not see or could not verify. Fix that one thing and most apps pass on the next submission. Change the wording without fixing it and you lose another week.

These are the nine reasons I see most, in rough order of how often they come up.

1. The screencast doesn’t show the permission being used

What it means: The reviewer watched your video and couldn’t point to the moment the permission did something.

Fix: Show the full loop for every permission: the action in your app, then the result on Facebook, Instagram, WhatsApp or Threads. For instagram_content_publish, that means composing the post, publishing it, then opening Instagram and showing the live post. Add captions naming the permission at each step.

2. The reviewer couldn’t log in or reproduce the flow

What it means: Your test credentials failed, the app needed an invite, or a paywall blocked the feature.

Fix: Give a test account that works from a fresh browser, with the paid features unlocked. Write the exact click path in the notes: “Log in → Inbox → select the Instagram account → open any conversation.”

3. The permission isn’t needed for the use case you described

What it means: What you asked for doesn’t match what your notes say the app does, or a smaller permission already covers it.

Fix: Request only what the feature needs. A common one: asking for business_management just to list Pages, which pages_show_list already does.

4. Your app is not using the permission in a way that benefits the user

Fix: Say who the user is and what they get. “Customer support agents reply to Instagram DMs from one inbox” is clear. “We access messages to improve our services” is not.

5. Automated replies shown where a human use case is required

This one hits pages_messaging, instagram_business_manage_messages and especially the Human Agent feature. If the screencast only shows a bot answering, the reviewer has no evidence of the human workflow you described.

Fix: Show a person reading the message and typing a reply in your inbox, then show it arriving in Messenger or Instagram.

6. Privacy policy or data deletion problems

Fix: The privacy policy URL must load, name your app or company, and say what Meta data you collect and why. Data deletion must be either a working callback URL or clear written instructions.

7. Business verification incomplete or mismatched

Fix: The legal name, address and phone on your documents must match your Business Manager and your website. Verify a domain email before you start.

8. The app setting doesn’t match the login flow

Instagram Business Login scopes (instagram_business_*) need the Instagram login flow. Facebook Login scopes (instagram_basic, instagram_manage_messages) need a Facebook Page linked to the Instagram account. Mixing them up gets rejected every time.

9. Test environment missing data

An insights dashboard on a brand-new account shows zeros, so the reviewer sees nothing to approve. Use an account with real activity, or create the activity during the recording.

What to do after a rejection

  1. Read the reviewer notes line by line and match each to a screen or sentence.
  2. Fix the app if a flow is missing. Don’t just reword it.
  3. Re-record the screencast for every rejected permission, not only the one flagged.
  4. Resubmit with notes a stranger could follow.

If you’ve been rejected more than once, the issue is usually one thing the reviewer can’t see. Send me the notes and I’ll tell you what it is.