StoreKit / IAP: Product WAITING_FOR_REVIEW — works locally with production RevenueCat key + Apple Sandbox, fails during App Review

Hello,

I need guidance on App Store Connect product state vs StoreKit behavior during App Review.

Stack: iOS app (Expo / React Native), subscriptions via RevenueCat + StoreKit. Bundle ID matches App Store Connect.

RevenueCat API keys — what I’ve verified locally:

  • With the production RevenueCat API key (iOS appl_..., same as the submitted build), everything works on local device but not when I download it from TestFlight.
  • I have also tested with RevenueCat’s sandbox / test API key (the separate key intended for sandbox/testing). That setup works as well — I can load offerings and complete test purchases the same way

What RevenueCat (SDK / dashboard health) reports:

  • Product monthly is configured in RevenueCat.
  • Warnings that products aren’t approved in App Store Connect yet and that the default offering has configuration issues.
  • Apple’s product state: WAITING_FOR_REVIEW.
  • The SDK still states that test purchases are possible.

What App Review reports:

  • After onboarding a new business account, “Activate subscription” leads to an error (plans don’t load / purchase path fails).
  • Review suggested an app code issue.

Why this is confusing: Locally, both RevenueCat key modes I tried (production and sandbox/test) work with Apple Sandbox on the device. The submitted build uses the production RevenueCat key. Review still sees a failure.

Questions:

  • For IAP in WAITING_FOR_REVIEW, should App Review always use an Apple Sandbox account to test subscriptions until the product is fully approved?
  • Is it documented that StoreKit may not return products during review without Sandbox while the product remains WAITING_FOR_REVIEW?
  • Has anyone else seen “works locally (prod + sandbox RevenueCat keys + Apple Sandbox) but Review fails” with the same WAITING_FOR_REVIEW state?

Thanks for any official documentation or similar threads.

@amacia

See TN3186: Troubleshooting In-App Purchases availability in the sandbox identifies common configurations that make your In-App Purchases unavailable in the sandbox environment.

With the production RevenueCat API key (iOS appl_..., same as the submitted build), everything works on local device but not when I download it from TestFlight....For IAP in WAITING_FOR_REVIEW, should App Review always use an Apple Sandbox account to test subscriptions until the product is fully approved?

Apple reviews your In-App Purchases (consumable, non-consumable, auto-renewable subscription, and non-renewing subscription) in the sandbox, the same environment you use to test your products. TestFlight also uses the sandbox for In-App Purchases

This environment uses data you configure for your app in App Store Connect when you call StoreKit APIs in your app. For Apple to review your products, they must exist in App Store Connect and you must submit them for review.

Is it documented that StoreKit may not return products during review without Sandbox while the product remains WAITING_FOR_REVIEW?

Your everything works on local device but not when I download it from TestFlight statement shows that your products fail to work in the sandbox before you submit them for review. After you submit your products for review, you can continue to test them in the sandbox. The review process doesn't affect it.

Before you can submit your products for review, confirm that you can successfully fetch and purchase them in the sandbox. Please follow these steps, then let me know about the outcome:

  1. Create a Sandbox Apple Account.
  2. On your testing device, sign into the above account. For more information, see Sign in to your Sandbox Apple Account for a development-signed app.
  3. Disable StoreKit Testing in Xcode in your Xcode project if applicable.
  4. Build and run your app in Xcode.

Does your app show any products?

StoreKit / IAP: Product WAITING_FOR_REVIEW — works locally with production RevenueCat key + Apple Sandbox, fails during App Review
 
 
Q