StoreKit2: Transaction.currentEntitlements returns expired subscriptions (Testing locally with shortened sub periods)

Hi,

title says it all: I have Transaction.currentEntitlements returning expired subscriptions (testing both transaction expirationDate & RenewalState). Environment: local via .storekit file. Subscription duration is shortened for testing. Could it be the issue? The sub duration is normally 1 year.

The documentation says it should only returns active subscription (RenewalState.subscribed) or in grace period (RenewalState.inGracePeriod).

I'm having this problem too. Did you find a resolution?

I am also having this problem with Product.currentEntitlement. We will check locally against the transaction's expirationDate value. Hopefully Product.currentEntitlement will always return the transaction with the higher expiration date...

The language in the docs is maybe misleading here? Perhaps "entitled" means something other than "has access" when it comes to an auto-renewing subscription? Would be really helpful if someone from the StoreKit team could clarify.

Long shot and probably too late, but did you call finish() on these transactions?

Did anyone found a solution for this?

I had the same issue. In my case, it was caused by the device’s Date & Time settings. Although the “Set Automatically” option was enabled, the time zone wasn’t set correctly because GPS was turned off. Once I turned on GPS, the time zone updated properly, and Transaction.currentEntitlements started working as expected. I recommend checking if other device settings are properly configured as well.

StoreKit2: Transaction.currentEntitlements returns expired subscriptions (Testing locally with shortened sub periods)
 
 
Q