Skip to main content
Question

Upgrade/Downgrade failing with GoogleProductChangeInfo in RevenueCat Flutter v9.15.1

  • March 25, 2026
  • 1 reply
  • 11 views

Forum|alt.badge.img

Hi everyone,

I'm using RevenueCat Flutter SDK v9.15.1 and having issues with subscription upgrades and downgrades on Android (Google Play).

Setup:
- Single subscription ID: `pro_access`
- Base plans: `starter_monthly`, `starter_yearly`, `premium_monthly`, `premium_yearly`, `professional_monthly`, `professional_yearly`
 

if (Platform.isAndroid && oldProductId != null && oldProductId.isNotEmpty) {
params = PurchaseParams.storeProduct(
newProduct,
googleProductChangeInfo: GoogleProductChangeInfo(
oldProductId,
prorationMode: GoogleProrationMode.immediateWithTimeProration,
),
);
} else {
params = PurchaseParams.storeProduct(newProduct);
}

Questions:

1. Should `oldProductId` be passed as `pro_access:starter_monthly` or just `starter_monthly`?
2. Is `GoogleReplacementMode.deferred` the correct mode for downgrades?
3. Is there anything specific to v9.15.1 that affects `GoogleProductChangeInfo`?

Google Play returns a generic error and RevenueCat logs a replacement mode error. Any help appreciated!

1 reply

alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6

Hey ​@elexoft-team-a7d3ed

Thank you for reaching out!

Should `oldProductId` be passed as `pro_access:starter_monthly` or just `starter_monthly`?

In this case, you should use the full product ID pro_access:starter_monthly

Is `GoogleReplacementMode.deferred` the correct mode for downgrades?

For downgrades, GoogleReplacementMode.deferred is the correct replacement mode to use. You can check examples of which replacement modes to use in the official Google Play documentation here.

Is there anything specific to v9.15.1 that affects `GoogleProductChangeInfo`?

Nothing specific affecting GoogleProductChangeInfo in this version.

 

If, after using the correct GoogleReplacementMode and the correct productID, you’re still experiencing issues, please share some debug logs, from which products you’re upgrading/downgrading to and from, and screenshots of their configuration in Google Play. Given that this may be private information, you could also create a support ticket to share this information with us.

I hope this helps!