Skip to main content

As the title suggests, I am having trouble purchasing a non-renewable product on my app.

Here is an overview of my current setup:

  • Flutter app (with products that can be purchased via app store or play store)
  • Web app (with the same products that can be purchased via Stripe)
  • Server (acts as the backend, is used for authenticating users on login)

The non-renewable product is specific to each user. In other words, if user A logs on to the app and purchases the product, then any privileges associated with that non-renewable product will be granted to user A. Then, if user A logs out of their account and user B logs on to the app using their own account on the same device, user B should not have access to those privileges.

 

In order to test the scenario mentioned above on my Flutter app, these are the steps I took:

  1. Log on to app using account A
  2. Purchase non-renewable product
  3. Verify that privileges are granted
  4. Log out of app
  5. Log on to app using account B
  6. Purchase non-renewable product
  7. Verify that privileges are granted

However, when I try to purchase the product (step 6), I get the following error:

There is already another active subscriber using the same receipt.

 

Other bits of info that might be useful:

  • The app user ID is set when a user logs in, and is unset when the user logs out of the app.
  • The app user ID is tied to the user’s account (it is set to the account’s unique ID)

Attached below are logs of me logging out of account A and then logging on with account B (log0.txt)

and logs of me attempting to purchase the non-renewable product with account B (log1.txt)

 

Thanks!

 

Edit: To clarify, this error only occurs on iOS, and not Android

Hi @Felix!

Since account A and B are sharing the same underlying App Store account, that is the reason why account B is seeing the “There is already another active subscriber using the same receipt” error. To resolve this, I suggest checking out our ‘Transfer purchases’ behavior. With this behavior, if one of your app accounts tries to restore or purchase and the same receipt (App Store account) is already in use by another one of your subscribers, the subscription status will be transferred over to the latest account.


Hi @Felix!

Since account A and B are sharing the same underlying App Store account, that is the reason why account B is seeing the “There is already another active subscriber using the same receipt” error. To resolve this, I suggest checking out our ‘Transfer purchases’ behavior. With this behavior, if one of your app accounts tries to restore or purchase and the same receipt (App Store account) is already in use by another one of your subscribers, the subscription status will be transferred over to the latest account.

Hey @tina, thanks for the speedy reply.

Let me just clarify that I made a mistake in my original post. I used the term “non-renewable” instead of “consumable” to describe the type of product that I was having trouble with.

As you have pointed out, this problem will occur for subscription purchases, as subscriptions are tied to a single Apple account and only one subscription can only be active at a time. However, my problem is that the error occurs even for a non-subscription, consumable product. From what I understand, consumables should be able to be purchased an infinite amount of times, so I am not sure why the error even occurs in the first place. Would you have any ideas on this?

Thanks again!


Hey @Felix 👋,

Can you double check the product in App Store Connect for the type of the product? Just to rule out if the product was misconfigured as something other than “consumable”. What version of Xcode and version of Purchases SDK are you currently using? Also, did you try testing on fresh sandbox accounts that do not have subscription purchases associated? 


Reply