Skip to main content
Question

Inconsistency in "Transfer if there are no active subscriptions" behavior on Android vs. iOS

  • March 22, 2026
  • 1 reply
  • 22 views

Forum|alt.badge.img

I am experiencing an issue with the "Transfer if there are no active subscriptions" restoration strategy. This behavior works as expected on iOS but appears to be bypassed on Android.

The Scenario:

  1. Both User A and User B are identified (non-anonymous App User IDs).

  2. User A has an active subscription linked to a specific Google Play / Apple ID.

  3. I log out User A and log in as User B on the same device.

  4. User B calls Purchases.restorePurchases().

Expected Behavior (observed on iOS): On iOS, RevenueCat correctly blocks the transfer (there won’t be any transfer event) and returns the RECEIPT_ALREADY_IN_USE_ERROR because User A still has an active subscription.

Actual Behavior (observed on Android): On Android, the restorePurchases() will return an error but the transfer event will still happen.

This contradicts the documentation for this transfer behavior. I have confirmed that this is happening in a sandbox environment, User A's subscription has not expired, and I’m applying "Transfer if there are no active subscriptions" to my entire project (including sandbox env).

Is this a known limitation on Android, or is there a specific configuration I'm missing?
 

 

1 reply

Tarek
RevenueCat Staff
Forum|alt.badge.img+4
  • RevenueCat Staff
  • March 25, 2026

Hello there!

 

Tarek from the support team here.

 

I checked internally, and transfer behavior should largely behave similarly on iOS and Android.

 

However, there are some technical details where Google's and Apple's receipts differ, which could theoretically create some rare edge cases.

 

If you are able to consistently reproduce this issue, could you please create and ticket and share the affected app user IDs, so we can trace internally what happened?

 

Best regards,