In one observed Restore Purchases attempt from a Release build distributed through TestFlight on a physical iPhone, try await AppStore.sync() threw an error that our Swift classifier matched to StoreKitError.unknown. Our Restore handler did not reach its subsequent entitlement-enumeration or backend-verification steps.
Environment: iPhone 17 Pro Max. The device was independently checked afterward and was running iOS 26.7 (23H24); the OS version was not independently recorded at the exact failure time.
Intended handler flow
- The user explicitly taps Restore Purchases.
- Call
try await AppStore.sync(). - Enumerate
Transaction.currentEntitlementsand accept only verified, eligible transactions for the expected subscription. - Send the eligible signed transactions to our backend for verification.
Observed attempt
- Narrow native Console events and a memory-only, sanitized in-app report matched the same attempt.
- The sync failure was recorded roughly 16 seconds after sync started. We are not treating that duration as evidence of a timeout.
- The owner reports completing Apple's authentication prompt during this specific attempt.
- The app displayed: “Purchases could not be restored. Please try again.”
- Existing Premium access remained displayed before and afterward. We do not count that as successful restoration.
- We have not retried since this captured attempt.
The error matched StoreKitError.unknown. Our sanitized report did not capture an underlying error or numeric error code; this does not establish that no additional diagnostic information exists elsewhere.
Current App Store Connect checks show the expected app/subscription-group association, subscription status Ready for Review, all countries or regions selected, and an active Paid Apps Agreement. These status checks do not establish that the configuration is the cause or that every configuration detail is correct.
Question
What supported, privacy-safe diagnostic should we collect to distinguish causes when AppStore.sync() throws StoreKitError.unknown, without exposing account details, transaction identifiers, receipts, or tokens?
If a focused reproducer is needed, is there a recommended way to isolate this TestFlight StoreKit context without weakening transaction verification or changing account/purchase history?
We are not asserting an Apple defect or an account/configuration problem. No raw logs or account/transaction data are attached.