- Store
- Google Play
- Rule
- Broken Functionality
- App
- Broadside
- When
- October 4, 2026
- Status
- Resolved: the next build was approved
What came back
Play rejected Broadside 1.0.0 (build 34) under Broken Functionality. The message said the app “does not open or load”, and the evidence was three screenshots of our splash screen and nothing else.
The same build opened every time we tried it: Android 14 and 16 emulators, offline, dark mode, animations off, launched from a locked screen. Play’s vitals and Crashlytics had no crashes at all. We could not make it fail.
What the analytics said
Our analytics had a session from the reviewer’s device: Android 13, no device model. In that session the app reached its title screen three times and sat on it for 1 minute 43 seconds, while Google’s screenshots showed the splash.
So the Dart side was running. The title screen was built. What the reviewer saw had stopped updating at the hand-off from the native splash to Flutter’s first frame. That is a rendering freeze, not a startup hang, and it’s a different bug to go looking for.
An Android 13 device with no model name fits one thing well: Google Play Games on PC, which runs Android in a virtual machine on Windows. The app was opted in to the PC form factor by default, and we had never run it there.
What we changed
- Opted the app out of PC under Advanced settings › Form factors in Play Console.
- Turned Impeller off on Android (
io.flutter.embedding.android.EnableImpellerset tofalsein the manifest), so it renders with Skia. The other flag people suggest,ImpellerBackend=opengles, was ignored without a word on Flutter 3.44: the phone still logged Vulkan. - Put a time limit on every wait before the splash comes down: 3 seconds for optional startup steps, 5 for Firebase, and an 8 second backstop on the native splash.
- Started Firebase and analytics after
runApp, not before. The cost is that a crash in the first second of a launch now goes unreported. - Added a frame check 12 seconds into every launch that logs frames built against frames drawn, so a repeat would show up in analytics.
Build 35 went in the next day and was approved. We changed several things at once and never reproduced the freeze, so we can’t say which change did it. The PC opt-out is our best guess.
What to check before you submit
Open Form factors in Play Console and look at what your app is opted in to. If PC is on and you haven’t tested on it, the reviewer may be the first person who does. Testing needs the Play Games PC Developer Emulator, which runs only on Windows.