Skip to main content
Question

Error simulating upgrade/downgrade in Test Store with Expo (React Native)

  • October 22, 2025
  • 1 reply
  • 29 views

Forum|alt.badge.img

Hi everyone! I’m new here and still learning, so please be patient if I say something silly 😅
I’m using Expo Go (React Native) in my app, and I’m implementing RevenueCat.

I’m currently using the Test Store to simulate subscriptions.
In my case, users can upgrade or downgrade between plans.
The only difference between the plans is the cloud storage limit, which is controlled by the active product_id.
In my app, users can only have one active subscription at a time.

 

Current setup in RevenueCat

Offerings

  • Created one offering called default

Packages

  • Inside this offering, I created “Custom” packages since all of my plans are monthly
    (the package only allows one monthly product per offering, so I used “Custom”)

Products

  • I have subscriptions imported from Google Play

  • And test subscriptions configured in the Test Store with similar product_ids

Entitlements

  • I have only one entitlement called storage_access


In my Expo app

I list all the packages from the current offering and let the user pick one to subscribe to.
Then, I check if the user already has an active subscription, and if so, I try to perform an upgrade/downgrade using this code:

const ci = await Purchases.getCustomerInfo();
const currentEntitlement = ci.activeSubscriptions[0];

const googleProductChangeInfo = {
oldProductIdentifier: currentEntitlement,
prorationMode: Purchases.PRORATION_MODE.IMMEDIATE_AND_CHARGE_FULL_PRICE,
};

const { customerInfo } = await Purchases.purchasePackage(
selectedPlan,
null,
googleProductChangeInfo
);

const entitlement = customerInfo.entitlements.active["storage_access"];

But I get this error:

[RevenueCat] 🤖‼️ PurchasesError(code=PurchaseNotAllowedError, underlyingErrorMessage=No active purchase found for product: lite, message='The device or user is not allowed to make the purchase.')

My questions

  1. What am I doing wrong in this flow?

  2. Will this same flow work for iOS in the future?

  3. Is my product/offering/package structure set up correctly?

If anyone has experienced this with the Test Store or knows a better way to structure upgrade/downgrade flows, I’d really appreciate your help

This post has been closed for comments

1 reply

joan-cardona
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • October 24, 2025

Hi ​@daniel-c537e6,

When do you configure the SDK - do you use the test store API key or the Google one? Bear in mind that if you are using the Test store key, the configuration of your Google products won’t count and will only take in account the test products. 

The test store is great to test the main scenarios like purchasing a product and making sure everything looks correct as well. Once that’s set up, you can try the flow with the specific store keys. If the subscription products are in the same group then they will ensure that only one subscription can be active at the time. You can read more about this here.

 

Best,