Environment
- OS: iOS 26.2 ~ 26.3
- SDK: Xcode 16.4 (Target: iOS 17.6)
- Framework: StoreKit 2
- Environment: Production (Cannot reproduce in Sandbox or Xcode Configuration)
Issue Description
We are encountering a critical purchase failure that occurs exclusively in the Production environment.
When a user who has a "Pending Downgrade" (scheduled for the next renewal date) attempts to re-purchase their current higher-tier product to cancel the downgrade, StoreKit 2 returns an error.
Steps to Reproduce
- User is currently on "Product A" (Higher Tier).
- User schedules a downgrade to "Product B" (Lower Tier). The status changes to "Pending Downgrade".
- User attempts to purchase "Product A" again via
Product.purchase(). - The system purchase sheet appears, and the user confirms the purchase.
- Immediately after authentication, a system alert from StoreKit appears saying: "Cannot process request at this time. Please try again later." (現在リクエストを一時的に処理できません。しばらくしてからもう一度お試しください。)
- After dismissing the alert, the app receives
StoreKitErrorcode 2 (unknown) with the localized message: "Request could not be completed" (リクエストを完了できません).
Technical Observations
- Transaction.currentEntitlements: Does not change.
- App Store Server Notifications (V2): No notifications are sent to our server.
- Sandbox Behavior: Works perfectly. Re-purchasing Product A successfully cancels the downgrade and the subscription remains at the Higher Tier.
- AppStore.sync(): Running a manual sync does not resolve the pending state after the error.
Question
Since we cannot debug production-level logs, we are stuck. Is this a known regression in the StoreKit 2 commerce engine regarding state synchronization for downgrades? Has anyone found a workaround for this specific scenario?
Any insights would be greatly appreciated.