microg / microg/GmsCore

[com.mcdonalds.mobileapp] Fails to launch after selecting region with U1 error

Open
#2,812 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Affected app
Name: McDonald's
Package id: com.mcdonalds.mobileapp

Describe the bug
Unable to launch into app, errors out with U1 error after selecting region.
When the error appears on screen, the following is printed in the logs:

26369 26369 W ๐Ÿฅ”๐ŸŸ : Error caught in RevolverViewModel MarketPickerViewModel
26369 26369 W ๐Ÿฅ”๐ŸŸ : com.mcdonalds.core.errors.KmmException: Unsupported response error response code in PlexureCommonErrorResponse(error=Market id is not set for consumer market update, errorCode=, errorDescription=null, innerException=null)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at com.mcdonalds.repository.account.datasources.AccountPlexureDataSourceImpl.changeMarket(Unknown Source:296)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at com.g5.invokeSuspend(Unknown Source:12)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:10)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at kotlinx.coroutines.DispatchedTask.run(Unknown Source:125)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at android.os.Handler.handleCallback(Handler.java:991)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at android.os.Handler.dispatchMessage(Handler.java:102)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at android.os.Looper.loopOnce(Looper.java:232)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at android.os.Looper.loop(Looper.java:317)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at android.app.ActivityThread.main(ActivityThread.java:8787)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at java.lang.reflect.Method.invoke(Native Method)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
26369 26369 W ๐Ÿฅ”๐ŸŸ :  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871)
26369 26369 D ๐Ÿฅ”๐Ÿ”ต: RevolverViewModel MarketPickerViewModel emitting state GenericError

To Reproduce
Steps to reproduce the behavior:

  1. Download McDonald's app
  2. Select your region
  3. Click "Next"
  4. After a few seconds, an U1 error appears

Expected behavior
Normally launch into app to use coupons

Screenshots
Screenshot of the error:

Screenshot of integrity checks:

System
Android Version: 15
Custom ROM: crDroid 11.2

microG
microG Core version: 0.3.6.244735
microG Self-Check results: All ticked

Additional context
I use Play Integrity Fix 18.7, Tricky Store 1.2.1 and have normal Google Play Store 45.2.19-31 installed and working. I pass all integrity checks. I already tried clearing data, setting all permissions, using older versions of McDonald's app, using "Hide my applist" to hide other apps, etc. I noticed this string in adb logcat after setting the region

Finsky  : [1638] wai.a(185): Encountered exception whilst fetching from GMS, deferring to Finsky: com.google.android.gms.common.api.ApiException: 17: API: IntegrityApiDisplayListener.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_DISABLED, resolution=null, message=null}

however, I don't know if it's related to the error, as this same string appears when using integrity check 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 by reproducing the region-selection flow in the McDonald's app on Android 15 and capture adb logcat around AccountPlexureDataSourceImpl.changeMarket and IntegrityApiDisplayListener.API. The issue names no GmsCore file or test, so compare the U1 failure and API_DISABLED logs with the Play Services compatibility code; done means the app launches after region selection without the U1 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java, kotlin
Domain
mobile, security
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.