Currently, our app uses device ID as the RevenueCat App User ID.
On Android, when a user:
- resets the device, or
- switches to a new phone
The device ID changes, which causes the App User ID to change as well.
Recently, we’ve received many user complaints about being unable to restore their purchases.
What we observed:
- After device reset or device change, the user is treated as a new App User ID in RevenueCat.
- The previous purchase is still visible in RevenueCat under the old App User ID.
Using the order ID, we can manually locate the old App User ID and transfer entitlements manually, which works.
However, automatic restore does not always transfer entitlements, even though:
- The purchase was made with the same Google account
- We are calling restorePurchases() correctly
Expected behavior (our understanding)
From RevenueCat documentation and theory:
When calling restorePurchases(), RevenueCat should automatically transfer entitlements to the current App User ID
But in practice, this does not consistently happen when App User ID changes due to device ID changes.
Questions / Concerns:
- Is using device ID as App User ID a wrong design choice? Especially for Android where device IDs can change after reset
- Are there limitations when App User ID changes?
What is the recommended App User ID strategy to avoid this issue?
