Skip to content
E
Egmatic
android-game-publishing-errorgoogle-playandroid-app-bundlegame-publishingmobile-gamesindie-games

Android Game Publishing Error: Top 5 Fixes That Work

When an Android game fails to publish on Google Play, the cause is almost always one of five things: a version code you forgot to increment, an APK instead of the required AAB bundle, a signing or keystore mismatch, a policy violation, or the closed-testing gate that now blocks brand-new developer accounts. None of these are mysterious — each has a concrete fix, and this guide walks through all five, plus the new requirement that personal accounts run a closed test with at least 12 testers for 14 days before they can reach production.

Vladislav KovnerovJune 30, 202611 min

Publishing an Android game to Google Play should be the moment your work reaches players. Instead, it is often the moment you hit an error that blocks the upload entirely. The good news is that almost every Android game publishing error falls into one of five predictable families, and each has a concrete fix. This guide covers the five that catch game developers most often — version codes, the bundle format, signing keys, policy violations, and the closed-testing gate — and what to do about each one before you press publish.

The process at a glance

To publish an Android game you need a Google Play Developer account (a one-time $25 registration fee), your game packaged as an Android App Bundle (.aab), a signed build, and a store listing — title, description, screenshots, content rating, and a data safety declaration. After you upload, Google reviews the app; most submissions are reviewed within about one to three days, though a first release or anything that triggers a closer look can take longer.

There is one newer step that catches first-time developers off guard. If your developer account is a new personal account, Google requires you to run a closed test with at least 12 opted-in testers for at least 14 continuous days before you can request production access. This is not an error you can fix in five minutes — it is a scheduled gate, so plan for it in your launch timeline.

With the shape of the process in mind, here are the five fixes.

1. Resolve version code conflicts

The most common error when publishing an update is a version code that is not higher than your previous release. Google Play requires every new release on a given track to have a higher version code than the one before it, and the upload is rejected outright if it is not.

The fix is mechanical. Open your build configuration, find the versionCode field, and increment it by at least one for every upload — then rebuild the bundle. If you publish to multiple tracks (internal, closed, production), keep the version codes consistent across them so you do not accidentally upload a build that conflicts with one already on a testing track.

A related trap: the user-facing versionName (the "1.0.3" players see) and the internal versionCode (an integer) are two different fields. Google checks the integer. Incrementing the display version is not enough if the code stays the same.

2. Use an Android App Bundle, not an APK

Since August 2021, Google Play requires all new apps to be published as an Android App Bundle (.aab). If you try to upload a raw APK for a new app, the upload is rejected. The Play Console takes your bundle and generates optimized APKs for each player's specific device, which shrinks the download size and removes the work of building and signing multiple APKs yourself.

If you are coming from a workflow that produces an APK, switch the build to produce a bundle. From the command line that is typically the bundle task (for example gradlew bundleRelease); from Android Studio it is Build → Generate Signed Bundle / APK → Android App Bundle. Existing apps that were already on the store could keep updating with APKs, but AAB is the recommended format for every app now, and new apps have no choice.

The bundle itself is not installable — it is a publishing format that contains your compiled code, resources, and assets. That is expected; the Play Console turns it into the installs.

3. Fix signing and keystore problems

Signing errors happen when the key used to sign the uploaded build does not match what Google Play expects. They are most common when you update an existing app, move to a new computer, or rebuild a project from scratch and generate a new key by accident.

The clean answer is Play App Signing. When you enroll, Google holds your app signing key and gives you an upload key that you use to sign bundles for submission. This has two practical benefits. First, Google can re-optimize your app for new devices over time without you re-signing anything. Second — and this is the one that saves developers — if you lose your upload keystore, you can request an upload key reset through Play Console support and keep updating the same app. Without Play App Signing, a lost keystore is a dead end: you cannot update the app and have to publish a brand-new app with a new package name, losing your installed base and reviews.

Turn Play App Signing on when you first create the app, back up your keystore and its passwords somewhere durable, and use the same upload key for every release of a given app. If you switch between debug and release certificates for testing Google services such as sign-in, register both certificate fingerprints against the same package name so the services work in both configurations.

4. Address policy violations

Policy violations are the most frequent reason Google rejects an app that uploaded successfully. They cover a wide range, but a handful dominate for games.

Broken functionality. If the reviewer finds the app does not work as described — it crashes, a core feature is missing, or a login is required but no way to test it is provided — the app is rejected. Test the exact build you submit, on a real device, and if your game needs an account, supply demo credentials in the store listing's review information.

Target API level. Google requires apps to target a recent Android API level, and the required level moves forward roughly every year. A build that targets an API level too far behind the current Android release is rejected. Check the current requirement in the Play Console before you build, and set your target and compile SDK accordingly.

Data safety and permissions. Your data safety declaration has to match what your app actually collects. If your game uses an advertising SDK, analytics, or any identifier, that data collection has to be declared honestly. Over-declaring and under-declaring both cause problems; the declaration simply has to agree with the app's real behavior.

Content policy. Deceptive metadata, misleading screenshots, or content that breaks the content guidelines will get the app rejected, and serious or repeated violations can suspend your developer account. Treat the store listing the way you treat the build: accurate, tested, and finished.

The structural fix for policy problems is to use the testing tracks before production. Run your build through internal and closed testing, where real testers find the crashes and broken flows that would otherwise become rejections, so by the time you reach production the obvious problems are already gone.

5. Clear the closed-testing gate (new personal accounts)

This is the one that blocks the upload before it is even an error. For any app published from a newly created personal developer account, Google requires a closed test with at least 12 testers who have been opted in for at least 14 continuous days before you can request access to production. (The threshold was 20 testers until late 2024, when it was lowered to 12.) Organization accounts are not subject to the same gate, which is why two developers can hit very different timelines for their first release.

If you press publish on day one of a new personal account and nothing happens, this is usually why. The fix is to run the closed test properly: gather 12 testers, have them opt in and install the build, keep the test running continuously for 14 days, and only then request production access. Build this into your launch plan from the start rather than discovering it the week you intended to ship.

If you use Play Games Services

A separate, narrower set of failures affects games that integrate Google Play Games Services — sign-in, leaderboards, achievements. The two that recur are authentication and the game-settings publish step. The account that created the game in the Play Console is not automatically a tester, so add it to the testers list explicitly or sign-in fails even though everything else looks right. And it is possible to publish the app without publishing the games-services settings; if your game is live but the settings are still in draft, features such as authentication fail for real players. Changes to Play Games Services can also take a couple of hours to reach end users, so publish the settings well before your launch, not at the same moment.

A pre-submission checklist

Run through this before you upload:

  • Increment the version code for every upload, and keep it consistent across tracks.
  • Build an Android App Bundle (.aab), not an APK, for any new app.
  • Enroll in Play App Signing, back up your keystore, and use one upload key per app.
  • Test the exact build you submit on a real device; supply demo credentials if the game needs an account.
  • Target a current Android API level; check the Play Console for the current requirement.
  • Make your data safety declaration match reality, including every ad and analytics SDK.
  • Pass the closed-testing gate (12 testers, 14 days) if your personal account is new.
  • Publish the Play Games Services settings, and add the creator account as a tester, before launch.
  • Enable managed publishing if you want to review the release manually before it goes live.

Most of these take minutes. Doing them up front is far cheaper than a review round trip.

Where Egmatic fits

A large share of Android publishing failures come down to configuration drift and device-specific bugs — a build that works on the developer's machine but crashes on a review device, signing that was set up once and forgotten, or a feature that broke in the last week of development. Egmatic is a 2D game editor and engine built on the MonoGame runtime, and it exports to Android from the same project you develop on desktop. Because you can run the game as a desktop build throughout development and then build the Android binary for device testing, the crashes and configuration problems that cause most publishing failures are found while you are still building, not after Google has already rejected the bundle. For the wider picture of how the same project reaches desktop, mobile, and console, see our guide to multiplatform game export.

Conclusion

Android game publishing errors are frustrating but rarely mysterious. They cluster around version codes, the bundle format, signing keys, policy violations, and — for new personal accounts — the closed-testing gate. Increment your version code on every upload, ship an AAB, enroll in Play App Signing and back up your key, test the real build and keep your data safety declaration honest, and if your account is new, run the 12-tester closed test for 14 days before you expect to reach production. Handle those five things and the vast majority of publishing failures never happen.


Sources

  1. Since August 2021, Google Play requires all new apps to be published as an Android App Bundle instead of an APK — The future of Android App Bundles – Android Developers Blog
  2. A Google Play Developer account requires a one-time $25 registration fee — Get started with Play Console – Google Help
  3. Newly created personal developer accounts must run a closed test with at least 12 opted-in testers for at least 14 continuous days before requesting production access — App testing requirements for new personal developer accounts – Google Help
  4. Google Play charges a 15% service fee on the first $1 million of revenue each year and 30% above it — Google Play service fees
  5. Play App Signing lets Google hold your app signing key and allows an upload key reset if your upload keystore is lost — Use Play App Signing – Google Help
  6. Google Play requires apps to meet a target API level requirement that updates each year — Target API level requirements – Google Play Help
  7. Google reviews most app submissions within a few days, and testing tracks let you distribute pre-release builds before production — Learn about app review and closed testing – Google Play Console

Related Posts