StoreKit 2: Transaction.all and Transaction.currentEntitlements return empty for valid non-consumable purchases in production

FB: https://feedbackassistant.apple.com/feedback/22556883

We're seeing a small number of production users where both Transaction.currentEntitlements and Transaction.all return zero transactions for a valid, active, non-refunded non-consumable IAP. This makes it impossible to restore the purchase via any StoreKit 2 API.

Environment:

  • Xcode 26.4 (Build 17E192)
  • iOS 26.4.1
  • Direct call to SK2 Transactions.all & Flutter in_app_purchase package v3.2.3 (uses SK2 on iOS 15+)
  • Non-consumable IAP (one-time purchase)

What we observe:

  • AppStore.sync() triggers but the purchase stream returns 0 transactions
  • Transaction.all returns empty
  • Transaction.currentEntitlements also returns empty
  • User is confirmed on the correct Apple ID
  • Issue reproduces on both iPhone and Mac for the same Apple ID
  • Issue appears to have started recently for users who previously had no problems

Debug log from affected production user:

[2026-04-20T08:50:10.744115Z] init: iapAvailable=true
[2026-04-20T08:50:10.744566Z] init: isPremium=false
[2026-04-20T08:50:10.744567Z] init: triggering silent restorePurchases
[2026-04-20T08:50:45.974566Z] restore: started
[2026-04-20T08:50:45.986848Z] restore: sk2Transactions count=0
[2026-04-20T08:50:45.993004Z] restore: sk2Direct isVerified=false active=null
[2026-04-20T08:50:45.993011Z] restore: sk2Direct inconclusive — falling back to standard restore
[2026-04-20T08:51:16.000851Z] restore: timed out after 30s — fallback isPremium=false
[2026-04-20T08:51:16.000910Z] restore: completed — succeeded=false foundPurchase=false

Unable to reproduce in sandboxTransaction.all works correctly there. Appears specific to production for a small subset of users.

Has anyone else seen this?

StoreKit 2: Transaction.all and Transaction.currentEntitlements return empty for valid non-consumable purchases in production
 
 
Q