I'm running into an edge case with RevenueCat when handling purchases via a Web Purchase Link after a user's subscription has expired.
Problem
When a user makes a first-time purchase via a web purchase link, the customer info updates correctly and addCustomerInfoUpdateListener fires as expected.
However, if the user’s subscription has previously expired, and they make a new purchase via web checkout, the customer info:
-
Does not show the new active subscription
-
Does not trigger
addCustomerInfoUpdateListener
This causes the app to remain in a non-subscribed state.
What I’m already doing
-
After the user completes the web checkout and returns to the app, I:
-
Call
Purchases.invalidateCustomerInfoCache() -
Then call
Purchases.getCustomerInfo()
-
I’ve verified that the purchase does go through successfully, since in the RevenueCat Dashboard I can see both the expired entitlement and the new active entitlement.
Environment
- Testing in a Sandbox environment where monthly subscriptions renew every 5 minutes
-
React Native SDK
0.79.4 -
Expo
53.0.12 -
react-native-purchases
~8.11.3 -
Issue reproduces on iOS
Expected Behavior
After a successful web purchase (even after a prior expiration):
-
addCustomerInfoUpdateListenershould trigger -
Purchases.getCustomerInfo()should return an active subscription
Is this a known limitation when repurchasing via web checkout after an expiration? If not, what’s the best way to ensure the app recognizes the updated subscription state in this scenario?
Any suggestions, workarounds, or clarifications are appreciated!
