Facebook App Review is broken

5 min read Original article ↗

3 months, 10 submissions, hours of clarifications, broken internal communications & helplessness all around even before launching

Sitesh Shrivastava

Last week, I received required permission approvals from Facebook team to be able switch Browsed from DevelopmentLive mode after making the 1st version in first 2 weeks of July after an excruciatingly frustrating process.

For reference, Browsed is a browser extension that enables people to receive interesting links from their friends’ browsing history over last 24 hours.

Considering most trusted existing network for vast majority of people exists on Facebook, I want to kickstart the service via FB user login, fetching user friends via API and building peer nodes based on encrypted ids for WebRTC based p2p web browser sharing network connectivity & links curation.

I go ahead and build intended product to launch to users and collect feedback.
Before going live, I notice additional FB approval is needed for: user_friends

Press enter or click to view image in full size

Permissions needed for functionality of Browsed

Press enter or click to view image in full size

user_friends — Facebook permission details

Pain #1: Requires Individual / Business verification

Press enter or click to view image in full size

Individual or Business verification needed, Individual paused, only option — Business

user_friends requires Individual developer or Business verification. I don’t need a business yet, but due to COVID-19 Facebook has disabled individual verification, so that leaves with only option.
After some heel kicking, I get it done with Netherlands chamber of commerce and get through Facebook verification process, after being lucky to get an appointment next day instead of general 3 weeks queue. Fair enough.

Pain #2: App Review submission video

Facebook requires a video recording submission, annotated with details & walk through entire process with test user account simulation, without audio.

Having never edited a video, I get Loom recording done, pick up some iMovie editing skills, add explainer text annotations around the timeline and edit some simulations to demo some features which won’t work for test user due to real time sharing nature of Browsed. Took a while but got it done. Alright.

Press enter or click to view image in full size

App Review submission details — Approved, remained mostly unchanged since 2nd submission

As per docs, I explained details needed to understand usage of requested user_friends permission along with steps-by-step replication instructions.

Pain #3: (Valid) Rejection without specific actionable feedback

On 1st submission, I get a rejection from review team with a generic link to Your app’s Facebook Login Button is broken, which is not replicable by me or people using in test mode and without any other explanation.

Press enter or click to view image in full size

Rejection feedback on submissions

I initiate chat with support agents and after some investigation they explain that showing which friends are using the app is a key requirement to consider it a social experience, even though implicitly it is retaining the social aspect.

Get Sitesh Shrivastava’s stories in your inbox

Join Medium for free to get updates from this writer.

Considering now Facebook is making judgement on app functionality (albeit un-intentionally) instead of legitimacy of permissions usage intention, I disagreed at first on this aspect but conceded to get it resolved.
Initial reason for not showing exact friends on Browsed was to make people feel safe in sharing curated browsing history as part of aggregated network feed instead of individually identifiable behaviour as resolution to findings from project Eyebrowse - Haystack group at MIT CSAIL.
After some tinkering, I mange to retain the core behaviour along with showing a general friends list currently using Browsed as well. Okay.

Pain #4: (Invalid) Rejection without specific actionable feedback

At this point, I’m pretty confident that all concerns are resolved, wrong!
Next half-dozen submissions over several weeks, I’ll be stuck in loop of : Submission → Rejection from Review team → Clarifying to Support team on valid adherence to policy. Repeat.
I considered scrapping the whole thing several times after getting frustrated and seeing no resolution in sight without changing the app significantly.
(Note - Submissions gap in August)

Press enter or click to view image in full size

Most recent approval (Green) after all 9 prior submissions rejected

Pain #5: Disconnect between App review <> Support teams

Corollary to pain#4 above, major reason this cycle continued for so long was support staff not having any connection with or authority equivalent to review team, where they can effectively help developer after clarifying any doubts and changing the results.

Rationale of sandboxing these teams makes sense, but ineffective in practice.

Full transcript of prior chat timeline with Facebook App Review Support

Pain #6: (Somewhat) Disconnected Business support team

In early October, I discovered a hotline for Direct Business Support line and decided to give it last shot for resolution, as I was eligible for it now that registration as business was done.

It still took 3 submissions from there to get it reviewed successfully.
Support agents on this channel also don’t have direct authority to change the review results, but seemed to have a clout to influence review process and were able to get it done over next 10 days after contacting.

Press enter or click to view image in full size

Full transcript of Facebook Business Support

Note: App functionality didn’t change since 1st rejection & 2nd submission.
Only thing that I can infer from the whole saga that something in staff understanding or communication channels is broken that causes a discrepancy in what actual policy is and how it’s being enforced in practice.

There are a ton of companies where terrible developer experience would be the norm, but getting this at the top tech companies which kickstarted with a single developer hacking up a solution to get started feels like losing the roots.
During these 3 months, I went through a bunch of cycles of morphing into something else or stopping the product efforts altogether even before getting in the hands of potential users.

Makes me wonder how many products don’t even see the light of the day due to getting crushed by bureaucracy of processes at these platform companies.
Maybe best way to build is to not rely on these giant platforms altogether?