[com.tencent.mm] FCM registration fails on Huawei App Twin (user 128) with BadParcelableException
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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