Skip to main content
Question

Error code 16 (UNKNOWN_BACKEND_ERROR) on TestFlight — no payment sheet appears, 0 sandbox customers

  • March 4, 2026
  • 2 replies
  • 22 views

Forum|alt.badge.img

Environment:

  • SDK: react-native-purchases ^9.8.0
  • Platform: iOS (Expo SDK 54, React Native 0.81.5)
  • Testing on: TestFlight (physical iPhone + iPad)
  • Bundle ID: com.withim.app
  • API key prefix: appl_

Products:

  • com.withim.app.grace_monthly1 (Auto-Renewable, 1 month, 7-day free trial)
  • com.withim.app.grace_annual1 (Auto-Renewable, 1 year, 7-day free trial)
  • com.withim.app.grace_lifetime1 (Non-Consumable)
  • All 3 products are "Waiting for Review" in App Store Connect
  • RevenueCat offerings configured: $rc_monthly$rc_annual$rc_lifetime

Problem: When calling purchasePackage(), it immediately throws error code 16 (UNKNOWN_BACKEND_ERROR) with no readableErrorCode or underlyingErrorMessage. The native Apple payment sheet never appears.

What works:

  • getOfferings() returns correct products with real prices from Apple (e.g., $3.99/month displays correctly)
  • Purchases.configure() succeeds
  • Purchases.getCustomerInfo() works
  • Purchases work when running via Xcode debug build on physical device

What doesn't work:

  • Any purchase attempt on TestFlight build — error 16, no payment sheet
  • Tried all 3 products (monthly, annual, lifetime) — same error

Configuration verified:

  • Paid Apps Agreement: Active
  • App-Specific Shared Secret: Set in RevenueCat
  • App Store Connect API Key (.p8): Configured in RevenueCat with correct Issuer ID and Key ID
  • App Store Server Notifications v2: Configured (both production and sandbox URLs)
  • Subscription group exists with localized display name
  • All product metadata complete (names, descriptions, pricing, screenshots)
  • Bundle ID matches across app.json, ASC, and RevenueCat

Attempted fixes (none worked):

  1. Added usesStoreKit2IfAvailable: false to Purchases.configure() — same error
  2. Added App-Specific Shared Secret to RevenueCat — same error
  3. Configured App Store Server Notifications v2 — same error
  4. Fresh native build via EAS Build (not just OTA update) — same error

Key diagnostic: RevenueCat dashboard > Customers > Sandbox shows 0 customers. The purchase request never reaches RevenueCat's backend. The error appears to be at the client SDK / StoreKit level before any server communication.

Question: What could cause error 16 with no payment sheet specifically on TestFlight builds, while Xcode debug builds work fine? Is there a known issue with StoreKit sandbox + TestFlight in react-native-purchases v9?

2 replies

matt-heaney
RevenueCat Staff
Forum|alt.badge.img+3
  • RevenueCat Staff
  • March 4, 2026

Hey ​@RohTae,

 

Thanks for the question and the very helpful details. I’m Matt from RevenueCat and I’d love to get this resolved.

 

This is an interesting one. To try and understand what could be causing this, I’ve been digging into your logs and cannot see any purchases made for iOS. This aligns with your observation that there are 0 customers on your dashboard. However, this isn’t what I’d expect to see if the purchase had completed via Xcode, as these would appear as sandbox purchases.

 

Could you check whether you are using a StoreKit Config file when running locally? Using a StoreKit configuration file would not show purchases on the RevenueCat dashboard and may behave differently compared to working with actual products from the App Store.

 

You can check this by editing your scheme in Xcode and navigating to Run → Options → StoreKit Configuration File.

 

If a StoreKit Config file is being used, could you please remove it and attempt another purchase locally? This may reproduce the same behavior locally, or it may produce additional logs that help us get to the root cause.

 

I also think the products being in a “Waiting for Review” state could potentially be causing issues here. For testing purchases, subscriptions generally need to be in a “Ready to Submit”,” or “Approved” state. New subscriptions usually need to be submitted alongside an app version, otherwise it can lead to some unexpected behavior. You can find more information about this here: https://www.revenuecat.com/docs/test-and-launch/submitting-ios-subscription-app

 

Please give this a try and let me know what happens, and we’ll figure out the fix from there!

 

Thanks!


Forum|alt.badge.img
  • Author
  • New Member
  • March 5, 2026

Hi Matt,

Thanks for digging into this. I checked and confirmed there is no StoreKit Configuration file in my Xcode scheme (Run → Options → StoreKit Configuration is set to None). So local purchases were also going through the real sandbox, not a simulated environment.

Given that, I believe the issue is the products being in "Waiting for Review" status. I've now replied back to Apple about it so they can take a look. I'll test purchases again once they move to an approved state.

I'll report back with results after the review completes. Thanks for the help!