Skip to main content
Question

Users cannot restore purchases due to App User ID tied to device ID

  • December 30, 2025
  • 1 reply
  • 16 views

Forum|alt.badge.img+5

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?

This post has been closed for comments

1 reply

joan-cardona
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • January 7, 2026

Hi ​@BG37,

The downside of using device IDs as the main id is that those are not always tied to the user necessarily like the case you shared, changing devices or uninstalling and reinstalling the app will lead into different ids for the same user. Is there a reason why you don’t want to use the provided anonymous ids? This should work better for this case and it’s intended to work for apps that don’t have an authenticated system.

Do you mind sharing what’s the restore behavior for the app facing this issue? If you set the behavior to “transfer to new app user id”, when the user does a restore it should change the entitlement to the new user id. If you used anonymous id, we would merge those anonymous into a single user as it should be. You can find more here.

 

Let me know if this helps!