Skip to main content
Question

Legacy Google Play Purchases Not Restoring After Migrating to RevenueCat

  • November 3, 2025
  • 1 reply
  • 51 views

Forum|alt.badge.img

I’ve migrated an Android app to RevenueCat that previously used Google Play Billing v5 (or older). The app offered several non-consumable one-time purchases. These were acknowledged, not consumed, and users could restore them via queryPurchaseHistoryAsync() before the migration. My app did not require a user to authenticate and relied completely on Google Play Billing to restore purchases made by users.

After integrating RevenueCat, no existing users show active entitlements - even after calling both restorePurchases() and syncPurchases(). New purchases made via RevenueCat work fine.

I’ve verified:

  • Old product IDs still exist in Play Console and are added under Products in RevenueCat, mapped to the correct entitlements.

  • Users are using the same Google Play account.

  • No backend was used previously to store purchase tokens.

  • queryPurchasesAsync(INAPP) now returns empty results for these users.

It seems older non-consumable purchases may have been acknowledged but are now invisible to the current BillingClient API, meaning RevenueCat can’t detect them.

Question:
Is there any path forward to automatically restore legacy non-consumable purchases that Google no longer returns via queryPurchasesAsync()?

Any guidance or official migration best practices for older (Billing v5 or earlier) one-time purchases would be appreciated.

 

This post has been closed for comments

1 reply

wes_clark
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • November 5, 2025

Hi! I saw that my coworker, Joan, already worked on this issue with you in a private support ticket, but I wanted to share his solution/explanation for this issue in case other users come across this post as well.

Here is what he said:

If you are on a 9.X version, it uses the new Google Billing Library which we are seeing issues with the restore/fetch of non-consumable purchases. The reason is that they stopped sending those purchases in the user's history and we are only able to grant them the non-consumable product if we previously had it marked as such in RevenueCat.
We are still working on a stable solution but for now staying in the 8.X version of the SDK should work. We keep making updates on those versions to make sure that you can still benefit from bug fixes and new features while we work on that permanent solution.