AppStore.sync() throws StoreKitError.unknown in TestFlight — supported diagnostics?

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

  1. The user explicitly taps Restore Purchases.
  2. Call try await AppStore.sync().
  3. Enumerate Transaction.currentEntitlements and accept only verified, eligible transactions for the expected subscription.
  4. 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.

Update: A newer TestFlight build now checks Transaction.currentEntitlements first. When an eligible verified entitlement is available, it proceeds through our existing backend verification without calling AppStore.sync().

On the same physical iPhone 17 Pro Max running iOS 26.7 (23H24), with unchanged accounts, two owner-operated Restore attempts succeeded. Both recorded:

  • One eligible verified local entitlement; zero unverified.
  • Backend HTTP 200.
  • Restore completion with success.
  • UI: “Purchases restored. Premium is active.”

Neither attempt entered AppStore.sync(). This confirms the local-entitlements-first path works in this tested environment, but it does not explain or establish resolution of the original StoreKitError.unknown.

The no-local-entitlement sync/fallback paths were not exercised during this retest. We remain interested in supported, privacy-safe diagnostics for the original AppStore.sync() failure.

AppStore.sync() throws StoreKitError.unknown in TestFlight — supported diagnostics?
 
 
Q