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.EnableImpeller set to false in 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.

Frequently asked questions

Why does Google Play say my app does not open when it does?

In our case the reviewer was most likely on Google Play Games on PC, which runs Android 13 in a virtual machine on Windows. Our analytics showed the app reaching its title screen while the screenshots showed the splash, so the display froze, not the app. Check which form factors you are opted in to.

Does turning off Impeller fix Flutter rendering problems on Android?

It was one of several changes in the build that was approved, so we can't credit it alone. Setting EnableImpeller to false in the manifest does switch Android to Skia. Flutter logs a deprecation warning for it, so check it again after every Flutter upgrade.

Check before you submit

The checks behind this page are skills for Claude Code, and the listing checker is free in your browser.

More cases