StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight

I am testing a StoreKit 2 non-consumable IAP through TestFlight.

Product ID: com.metabolla.plus.lifetime Type: Non-Consumable Environment: TestFlight / Sandbox

Transaction.currentEntitlements keeps returning an active entitlement for this product even after:

  • configuring a Sandbox Apple Account
  • clearing Sandbox Purchase History
  • reinstalling the app
  • rebooting the device

Important detail: the first TestFlight purchase was completed before configuring the Sandbox Apple Account on the device.

If I temporarily change the Product ID in code, the entitlement disappears, so the issue seems tied to the original Product ID/account/receipt.

Question: Can a non-consumable TestFlight purchase made before Sandbox Apple Account configuration remain associated with the original TestFlight/Apple ID identity? Is there any supported way to clear this entitlement for testing?

Does signing out and back in after a clearing purchase history work?

Yes, I tried signing out and back in after clearing purchase history, but it did not help.

The entitlement is still returned by Transaction.currentEntitlements for the original Product ID. Reinstalling, rebooting, and configuring a Sandbox Apple Account did not clear it either.

Changing the Product ID makes the entitlement disappear, so it looks tied to the original TestFlight/Apple ID receipt. Is there any supported way to reset this for a non-consumable TestFlight purchase?

Yes, I tried signing out and back in after clearing purchase history, but it did not help.

The entitlement is still returned by Transaction.currentEntitlements for the original Product ID. Reinstalling, rebooting, and configuring a Sandbox Apple Account did not clear it either.

Changing the Product ID makes the entitlement disappear, so it looks tied to the original TestFlight/Apple ID receipt. Is there any supported way to reset this for a non-consumable TestFlight purchase?

StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight
 
 
Q