I'm experiencing an issue where monthly and family monthly subscriptions fail immediately with "purchase cancelled" in TestFlight, while yearly and family yearly subscriptions work correctly.
Setup:
- All 4 products in same subscription group
- All show "Ready to Submit" status
- Using react-native-iap with StoreKit 2
- Testing in TestFlight sandbox
The Problem:
- Yearly subscriptions work fine
- Monthly subscriptions fail immediately with E_USER_CANCELLED (no dialog appears, user didn't cancel)
What I've verified:
- No active subscriptions (getAvailablePurchases() returns empty)
- No pending transactions
- Same subscription group for all products
- Product IDs match App Store Connect
- Code is identical for all products
Error: E_USER_CANCELLED fires immediately when calling requestPurchase() for monthly products, but yearly products proceed normally.
Questions:
- Why would monthly fail while yearly works (same group, same config)?
- Could this be sandbox state corruption for monthly products?
- Should I delete/recreate the monthly products?
Any insights would be appreciated!