microg / microg/GmsCore

[com.tencent.mm] FCM registration fails on Huawei App Twin (user 128) with BadParcelableException

Open
#3,780 0 comments 0 reactions 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: WeChat
Package id: com.tencent.mm

**Describe the bug**
FCM works correctly for the app in the owner profile (user 0), but fails for the same app running as a Huawei App Twin / cloned app in Android user 128.

When the cloned app is opened, it requests FCM registration through microG, but fails continuously every 60–90 seconds due to a `BadParcelableException` caused by `ClassNotFoundException`:
`org.microg.gms.gcm.PushRegisterServiceKt$ensureCheckinIsUpToDate$resultData$1$1`

As a result, no MCS/GCM connection is established for user 128, and FCM messages do not arrive when the cloned app process is not running.

**To Reproduce**
1. Install and configure microG on a Huawei device supporting App Twin.
2. Enable App Twin for WeChat (`com.tencent.mm`).
3. Open the cloned app under user 128 and observe FCM registration in logcat.
4. Registration repeatedly fails with `BadParcelableException` / `ClassNotFoundException`.
5. Kill the cloned app process (without force-stopping).
6. FCM messages do not arrive and the clone cannot be cold-started.

**Expected behavior**
microG should successfully handle FCM registration and message delivery for the cloned application under user 128, same as user 0.

**System**
Device: HUAWEI PLU-AL10
Android Version: 12 (API 31)

**microG**
microG Core version: 0.3.16.252432-hw

**Additional context**
- Firebase receiver resolves correctly in both users (`com.tencent.mm/com.google.firebase.iid.FirebaseInstanceIdReceiver`).
- Owner instance (user 0) works completely fine.

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 failure on a Huawei device with App Twin enabled for WeChat, then inspect logcat around PushRegisterServiceKt and the reported BadParcelableException/ClassNotFoundException. Compare registration behavior for user 128 with user 0; done means the cloned app registers successfully, establishes its MCS/GCM connection, and receives FCM messages after its process is killed.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, firebase, java, kotlin
Domain
mobile
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.