Describe the bug
Description:
The purchaseCancelledByUser callback works the first time a user cancels a purchase from the RevenueCat paywall, but it is not triggered on subsequent cancellation attempts.
Steps to Reproduce:
Present the RevenueCat paywall.
Initiate a purchase.
Cancel the purchase from the App Store sheet → ✅ purchaseCancelledByUser is called.
Try to purchase again.
Cancel the purchase again → ❌ purchaseCancelledByUser is NOT called.
Expected Behavior:
The purchaseCancelledByUser callback should be triggered every time the user cancels a purchase, regardless of how many times they attempt it.
Actual Behavior:
The callback is only triggered on the first cancellation. Subsequent cancellations do not invoke the callback.
Impact:
UI state may not update correctly after repeated cancellations.
Analytics and user behavior tracking become inaccurate.
Can lead to confusing UX (e.g., loaders not stopping, paywall not dismissing properly).
Additional Notes / Possible Causes:
Could be related to cached purchase state or incomplete reset of the purchase flow.
Might depend on how the paywall is re-presented or how delegates are retained.
Worth checking if the RevenueCat SDK is properly re-initializing the purchase state between attempts.
Platform
iOS
SDK version
5.52.1
SDK integration method
Swift Package Manager
StoreKit version
{"StoreKit 1 (default on versions <5.0.0. Can be enabled in versions >=5.0.0 with .with(storeKitVersion" => ".storeKit1))"}
OS version
iOS 26.2.1
Xcode version
xcode 26.2
Device and/or simulator
Device
Environment
Sandbox
How widespread is the issue
90%
Debug logs
ERROR: 🍎‼️ Purchase was cancelled.
Steps to reproduce
Present the RevenueCat paywall.
Initiate a purchase.
Cancel the purchase from the App Store sheet → ✅ purchaseCancelledByUser is called.
Try to purchase again.
Cancel the purchase again → ❌ purchaseCancelledByUser is NOT called.
Other information
Additional context
Describe the bug
Description:
The purchaseCancelledByUser callback works the first time a user cancels a purchase from the RevenueCat paywall, but it is not triggered on subsequent cancellation attempts.
Steps to Reproduce:
Present the RevenueCat paywall.
Initiate a purchase.
Cancel the purchase from the App Store sheet → ✅ purchaseCancelledByUser is called.
Try to purchase again.
Cancel the purchase again → ❌ purchaseCancelledByUser is NOT called.
Expected Behavior:
The purchaseCancelledByUser callback should be triggered every time the user cancels a purchase, regardless of how many times they attempt it.
Actual Behavior:
The callback is only triggered on the first cancellation. Subsequent cancellations do not invoke the callback.
Impact:
UI state may not update correctly after repeated cancellations.
Analytics and user behavior tracking become inaccurate.
Can lead to confusing UX (e.g., loaders not stopping, paywall not dismissing properly).
Additional Notes / Possible Causes:
Could be related to cached purchase state or incomplete reset of the purchase flow.
Might depend on how the paywall is re-presented or how delegates are retained.
Worth checking if the RevenueCat SDK is properly re-initializing the purchase state between attempts.
Platform
iOS
SDK version
5.52.1
SDK integration method
Swift Package Manager
StoreKit version
{"StoreKit 1 (default on versions <5.0.0. Can be enabled in versions >=5.0.0 with
.with(storeKitVersion" => ".storeKit1))"}OS version
iOS 26.2.1
Xcode version
xcode 26.2
Device and/or simulator
Device
Environment
Sandbox
How widespread is the issue
90%
Debug logs
Steps to reproduce
Present the RevenueCat paywall.
Initiate a purchase.
Cancel the purchase from the App Store sheet → ✅ purchaseCancelledByUser is called.
Try to purchase again.
Cancel the purchase again → ❌ purchaseCancelledByUser is NOT called.
Other information
Additional context