microg / microg/GmsCore

[BUG] Games fail GMS verification when launched offline.

Open
#3,760 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Java
Stars
14.6k
Forks
3.2k
Avg merge
12d 11h
Merged PRs (30d)
4

Description

Describe the bug

Games fail Google Play license verification when launched while offline. The app throws "Check that Google Play is Enabled on your device and that you're using an up-to-date version before opening the app. If the problem persists try reinstalling the app." This happens on roughly 80% of installed games such as Zombie Catchers or Zombie Tsunami.

Purchases through the billing companion and general Play Store emulation (installs, updates, account sign-in) all work correctly, so this looks isolated to the license check step specifically. Notably, if a game is opened while online first and internet is then disabled mid-session, it keeps running fine. It only fails when a game is opened while offline.

To Reproduce

Steps to reproduce the behavior:

  1. Disable internet connection (Wi-Fi and mobile data both off).
  2. Open a previously installed game that uses Play licensing.
  3. Observe the license check error on launch.
  4. Reconnect internet and confirm it launches fine while online, then close the game.
  5. Disable internet again, relaunch, error returns. Previously a reinstall of microG and Billing Companion fixed this permanently as a one-time bug, it no longer does.
Expected behavior

Game should launch normally offline using a cached/valid license state, matching how official Google Play Services handles a signed license response with an offline grace period, rather than failing outright when the live license check request can't reach the server.

Screenshots
Image
System

Android Version: 10
Custom ROM: EMUI 12 (Huawei Nova Y70, official Huawei microG hw build, not a custom ROM)

Additional context
  • com.google.android.gms-252432032-hw.apk
  • com.android.vending-84022632-hw.apk
  • microG version 0.3.16.252432, released July 14
  • Self-Check: All items passed/ticked
  • HMS translation layer in use for Huawei compatibility
  • In-app purchases via billing companion work correctly
  • Suspected cause: LicensingService performs a live network request on every checkLicense/checkLicenseV2 call rather than falling back to a locally cached signed license response when offline. Cold-start offline launches fail even for previously verified/owned apps

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with LicensingService and the checkLicense/checkLicenseV2 entry points mentioned in the report. Reproduce a cold-start offline launch after a successful online verification, then compare that path with the working online and mid-session cases. Done means previously verified games can launch offline using an appropriate cached signed license state without breaking online checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.