Expected behavior for Testflight testing

  • 30 May 2023
  • 1 reply

Badge +2

Hi all,

When testing monthly subscriptions for an IOS app in Testflight, I have created 30+ test users via gmail accounts. Each time I have a new user create an account on my app and subscribe, the Sandbox data in Revenuecat switches all the Customer info to that new ID (uid in Firebase), including backdating activity. Is that expected behavior, or should each new account (aka new firebase UID) have it’s own identity in the Revenuecat Sandbox, so I can accurately test?


Here is some example history for the current user. Does this look normal? I did have the user logout of their app for less than 24 hours but they did not “opt out” of renewal.

Also see the transfer of the subscription. Is that how the testing works?




Best answer by cody 1 June 2023, 19:15

View original

1 reply

Userlevel 6
Badge +8

Hey @bill-mabry-4158ad!

Happy to help explain what’s happening here - it’s important to first mention that this looks normal, although I understand a bit strange at first.

RevenueCat loosely associates purchases to an App User ID (in your case it sounds like the Firebase uid) when a user makes a purchase. In the event that a different App User ID makes a new purchase (or restores purchases) from the same underlying Apple ID of a different App User ID that has already made a purchase, we’ll default to transferring the purchases from the previous user to the new user.

In your example, it sounds like the same TestFlight account is being used for multiple App User IDs, which is causing the transfers and historical purchases to show back up in the new user ID’s feed.



UserIDA uses AppleID1 to make a purchase. RevenueCat associates the purchase to UserIDA.

UserIDA logs out, and logs in with UserIDB account.

UserIDB uses AppleID1 to make a purchase. (different App User ID, but same store account)

RevenueCat sees UserIDB claiming ownership of the underlying purchases that are associated to AppleID1, and so it transfers the ownership away from UserIDA → UserIDB.

UserIDA loses access to the purchases, while UserIDB gains access.


You can read more about user identity in our guide here: