Environment OS: iOS 26.2 (Beta/Release)
Framework: StoreKit 1 (or StoreKit 2)
Environment: TestFlight / Sandbox
Device: [Insert your device model, e.g., iPhone 15 Pro]
Description I am encountering a persistent issue where SKPaymentQueue.default().finishTransaction(transaction) does not successfully remove the transaction from the queue.
Every time a new purchase is initiated, the observer triggers an immediate update with the previous transaction's ID (Transaction ID). The system then displays a system alert stating: "You've already purchased this In-App Purchase. It will be restored for free." Even after explicitly calling finishTransaction, the same transaction reappears in the updatedTransactions array upon the next app launch or purchase attempt.
Steps to Reproduce Add a transaction observer in didFinishLaunchingWithOptions.
Initiate an In-App Purchase in TestFlight.
Upon success (.purchased), call SKPaymentQueue.default().finishTransaction(transaction).
Attempt to buy the same non-consumable item (or any item) again.
Result: The previous transaction is pushed again, and the queue never clears.
What I’ve Tried Ensured finishTransaction is called on the main thread.
Verified that the observer is added at app launch.
Manually iterating through SKPaymentQueue.default().transactions and finishing all entries.
Signed out of the Sandbox account and used a completely new test account.
Deleted and reinstalled the App via TestFlight.