Skip to content

🐛 RevenueCat Paywall: purchaseCancelledByUser Not Triggered Consistently #6554

Description

@rqbctg

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions