How to reproduce:
- Open the "IN-142811" project
- Build for iOS
- Open the "Unity-iPhone.xcodeproj" in Xcode
- Go to File > New > File... > select "StoreKit Configuration File" > click Next > Save as "Test.storekit"
- Select Unity-iPhone as a target
- In "Test.storekit", click "+" > Add Auto-Renewable Subscription > Set "Product ID" to "com.unity.iap.test.adventure.pass"
- In the "Test.storekit" editor, set "Subscription Renewal Rate" to "Every 10 Seconds"
- Go to Product > Scheme > Edit Scheme... > Run > Options > set "StoreKit Configuration" to "Test.storekit"
- Build to a device
- On the device screen, tap "Initialize"
- Tap "Purchase" for the "Adventure Pass"
- In Xcode, go to Debug > StoreKit > Manage Transactions
- Click "Subscription Options" on the active "Purchased" transaction > Cancel Subscription
- Wait for all transactions to show up as "Expired" in the transactions window
- Stop the app in Xcode
- Build to a device
- On the device screen, tap "Initialize"
- Observe the Xcode console
Actual result: "OnPurchasePending" callback is triggered for expired subscription
Expected result: No "OnPurchasePending" callback is triggered for the expired subscription
Reproducible with: 5.2.0 (6000.3.16f1), 5.3.0 (6000.3.16f1)
Not reproducible with: 5.2.0-pre.2 (6000.3.16f1)
Built on: macOS 26.5 (M1 Max)
Reproducible with these devices:
VLNQA00631 - iPhone 15 (MTP03QN/A), CPU: t8120, OS: 18.4.1
VLNQA00232 - iPhone 8 Plus (MQ8M2ET/A), CPU: Apple A11 Bionic, GPU: Apple designed, OS: 16.7.10
VLNQA00636 - iPad mini (A17 Pro) (MXN83KN/A), CPU: t8130, OS: 18.3.1