Post

Replies

Boosts

Views

Activity

Reply to StoreKit2 does not provide an update when subscription was cancelled
Important points regarding transaction updates and subscription/purchase events: Transaction.updates is primarily designed for new and updated transactions (purchases, successful renewals, refunds, revocations, purchases made on another device, etc.). When a subscription simply expires (i.e., auto-renewal just didn't go through), Apple often doesn't generate a new transaction. As a result, a dedicated event in Transaction.updates may not arrive at all, or may come with a significant delay. Many developers confirm this: relying solely on Transaction.updates to detect the moment a subscription expires is unreliable. The best approach is to use a combination of: Transaction.updates — mandatory (for new transactions). Product.SubscriptionInfo.Status.updates — specifically for tracking subscription status changes (including .expired). Periodic / event-driven calls to refreshAll() — on app launch, when returning from the background, and when opening the paywall. SubscriptionInfo.Status.updates is the closest thing to an "automatic event on expiration" available on the client side.
Topic: App & System Services SubTopic: StoreKit Tags:
May ’26
Reply to StoreKit2 does not provide an update when subscription was cancelled
I'm using and getting the same error (no cancel event is received in the asynchronous sequence Transaction.updates, but subscription start/renewal events are received) at least in the sandbox environment. Is there any solution to this other than adding a timer and periodically querying the latest transactions (for example via Transaction.currentEntitlements) or using your own backend?
Topic: App & System Services SubTopic: StoreKit Tags:
Jan ’24
Reply to StoreKit2 does not provide an update when subscription was cancelled
Important points regarding transaction updates and subscription/purchase events: Transaction.updates is primarily designed for new and updated transactions (purchases, successful renewals, refunds, revocations, purchases made on another device, etc.). When a subscription simply expires (i.e., auto-renewal just didn't go through), Apple often doesn't generate a new transaction. As a result, a dedicated event in Transaction.updates may not arrive at all, or may come with a significant delay. Many developers confirm this: relying solely on Transaction.updates to detect the moment a subscription expires is unreliable. The best approach is to use a combination of: Transaction.updates — mandatory (for new transactions). Product.SubscriptionInfo.Status.updates — specifically for tracking subscription status changes (including .expired). Periodic / event-driven calls to refreshAll() — on app launch, when returning from the background, and when opening the paywall. SubscriptionInfo.Status.updates is the closest thing to an "automatic event on expiration" available on the client side.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
May ’26
Reply to StoreKit2 does not provide an update when subscription was cancelled
I'm using and getting the same error (no cancel event is received in the asynchronous sequence Transaction.updates, but subscription start/renewal events are received) at least in the sandbox environment. Is there any solution to this other than adding a timer and periodically querying the latest transactions (for example via Transaction.currentEntitlements) or using your own backend?
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jan ’24