Critical: finishTransaction() fails to clear queue in iOS 26.2 Sandbox (TestFlight)

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.

Thank you for the detailed information. To investigate this behavior thoroughly, could you please file a report using Feedback Assistant and include a sysdiagnose log?

Part 1 How to File the Feedback Report

Navigate to Feedback Assistant and log in with your Apple Developer account. Choose iOS & iPadOS for the product. For the report details, please include the detailed description and steps to reproduce from your post as well as the sysdiagnose.

Part 2 Capture and Attach sysdiagnose

Go to the Bug Reporting - Profiles and Logs page. Follow the instructions to install the necessary profiles for App Store issues. Once the profiles are installed, reproduce the purchase issue in your app and capture the sysdiagnose. Attach the resulting log file to your Feedback Assistant ticket.

Part 3 Share the Feedback ID

After you submit the report, please share the Feedback ID here to find your report and track its progress.

Critical: finishTransaction() fails to clear queue in iOS 26.2 Sandbox (TestFlight)
 
 
Q