I have filed Feedback Assistant report FB24182480 for this issue.
On an Apple Watch Series 6 running watchOS 26.6 (23U67), a TestFlight watchOS app can successfully load a non-consumable StoreKit 2 product from Sandbox and display its localized price. However, a subsequent single call to product.purchase() can fail before, or while, the system confirmation sheet is displayed.
The app itself remains alive. It receives StoreKit.StoreKitError.systemError (code 1), with an underlying NSCocoaErrorDomain error 4097, consistent with losing the XPC connection to storekitd.
The affected run’s private co-sysdiagnose shows this sequence:
storekitd starts processing the payment.
The Sandbox purchase request returns HTTP 200.
AMSPaymentSheetTask begins.
The kernel reports that storekitd exceeded its ActiveSoft 5 MB limit and terminates it as the high-water process.
The app receives Cocoa error 4097.
A later user-initiated retry was handled by a restarted storekitd process and ended with the same result. There are no overlapping product, entitlement, or purchase operations, and the app does not automatically retry purchase().
The issue is intermittent: in other runs on the same Watch, the Sandbox purchase sheet has appeared successfully. This makes it appear to be a system purchase-service lifecycle or memory-management issue rather than a product-configuration or product-loading issue.
Environment:
Apple Watch Series 6 (Watch6,4)
watchOS 26.6 (23U67)
TestFlight build
StoreKit 2
Sandbox non-consumable IAP
One explicit Buy tap per attempt
Has anyone seen storekitd being terminated with a high-water reason during a watchOS purchase flow, or found a supported app-side mitigation for the resulting StoreKit error 1 / Cocoa 4097?
I have kept the sysdiagnose and recordings private in Feedback Assistant because they contain account, device, and network information.
0
0
21