Skip to main content
This page documents common RevenueCat issues and their solutions.

Products Not Loading

”None of the products could be fetched from App Store Connect”

This is the most common error. Check these in order:
1

Check if using Simulator

Simulator cannot fetch products from App Store Connect.Solution: Test on a physical device, or create a StoreKit Configuration file in Xcode.
2

Verify Paid Apps Agreement

Go to App Store Connect → Agreements, Tax, and Banking
  • Status must be Active (not pending)
  • Complete all tax and banking info
3

Check Product Configuration

Each product in App Store Connect needs:
  • ✅ Price set
  • ✅ At least one localization (display name + description)
  • ✅ Subscription group assigned
4

Verify Bundle ID

Your app’s bundle ID must exactly match App Store Connect.Check app.config.ts:
ios: {
  bundleIdentifier: "com.yourcompany.yourapp",
}
5

Sign In to Sandbox Account

On your iPhone:
  1. Settings → App Store → scroll to Sandbox Account
  2. Sign in with a sandbox tester
6

Wait for Apple StoreKit

Sometimes this is an Apple-side issue with StoreKit. If all the above checks pass:
  • Wait 15-30 minutes and try again
  • New products can take time to propagate through Apple’s systems
  • Check Apple System Status for outages
  • If persistent, contact Apple Developer Support
This error is often caused by Apple’s StoreKit systems, not your configuration. If you’ve verified all settings are correct, waiting is usually the best solution.

”None of the products registered in RevenueCat could be fetched from the Play Store”

This is the Android version of “offerings empty.” Check these in order:
1

Feature disabled until configured

If you haven’t set up products yet, disable payments to avoid noisy logs: apps/mobile/features/feature-registry.tsxfeatureFlags.payments = false.
2

Verify package name

Your Android package name must match Play Console: app.config.tsandroid.package.
3

Products are active

In Play Console → MonetizeProducts, ensure each product is Active and has pricing set.
4

Use a signed build

Install a signed build (EAS or Play testing). Play Store products won’t load in a debug build.
5

App is in closed testing track

Upload a build to a closed testing track and add your tester account. Play Billing products usually require a Play-hosted build.

”Invalid credentials” or Play Console auth errors (Android)

RevenueCat needs a Google Play service account with the correct permissions, and your app must be in a closed testing track.
1

Create a service account

In Play Console → SetupAPI access, create a service account and link it to your project. Download the JSON key for RevenueCat.
2

Assign permissions

Grant the service account access to subscriptions and financial data (RevenueCat’s docs list the exact roles needed).
3

Use a closed testing track

Upload a build to closed testing and add your tester account. Google Play Billing won’t validate products for non‑hosted builds.
RevenueCat documents the exact Play Console roles and setup flow for Android. Use their guide if you need step‑by‑step permissions details.

Configuration Warnings

”RevenueCat already configured”

WARN  RevenueCat already configured, skipping...
This is harmless. It means Purchases.configure() was called more than once. Our provider handles this automatically.

”Products are configured but aren’t approved in App Store Connect”

Products status (READY_TO_SUBMIT) requires action in App Store Connect
This is expected for development. Products in “Ready to Submit” status work for:
  • ✅ Sandbox testing (physical device)
  • ❌ Simulator testing
  • ❌ Production
Products become fully “Approved” after your first app submission.

Entitlement Issues

”User has no active entitlements” after purchase

  1. Check product → entitlement mapping
    • RevenueCat → Product Catalog → Products
    • Verify product is attached to an entitlement
  2. Verify purchase completed
    • RevenueCat → Customers → search for user
    • Check transaction history
  3. Refresh subscription status
    const { refresh } = useRevenueCat();
    await refresh();
    

Subscription works in sandbox but not production

  1. App must be approved and live on App Store
  2. Products must be approved (not “Ready to Submit”)
  3. Paid Apps Agreement must be active
  4. User must have a real (not sandbox) purchase

Paywall Issues

Paywall shows but no products displayed

  1. Check Offerings in RevenueCat
    • Product Catalog → Offerings
    • Ensure packages are assigned
    • Verify offering is set as “Current”
  2. Check paywall assignment
    • Paywalls → your paywall
    • Verify it’s assigned to an offering

Paywall not showing at all

  1. Check RevenueCat initialization
    • Look for ✅ RevenueCat initialization complete! in logs
    • Verify API key is correct
  2. Check for errors in logs
    • Enable verbose logging in development
    • Look for ❌ Failed to fetch offerings

Testing Issues

Can’t test on Simulator

The iOS Simulator cannot connect to App Store Connect. Options:
  1. Use a physical device (recommended)
  2. Create a StoreKit Configuration file:
    • In Xcode: File → New → File → StoreKit Configuration File
    • Add products with matching IDs
    • Edit Scheme → Run → Options → StoreKit Configuration

Sandbox purchases not working

  1. Sign out of production App Store
    • Settings → App Store → sign out of your real Apple ID
  2. Sign into sandbox account
    • Settings → App Store → Sandbox Account
  3. Use a fresh sandbox account
    • App Store Connect → Users & Access → Sandbox → create new

”Cannot connect to iTunes Store”

  • Check internet connection
  • Try a different sandbox account
  • Wait a few minutes and retry (App Store Connect can have delays)

API & Network Issues

”Network request failed”

  1. Check internet connection
  2. Verify API key is correct
  3. Check RevenueCat status page: status.revenuecat.com

Customer info not updating

// Force refresh from network
const { refresh } = useRevenueCat();
await refresh();

Debug Logging

Enable verbose logging to see detailed RevenueCat activity:
// In provider.tsx - already enabled in development
if (__DEV__) {
  Purchases.setLogLevel(LOG_LEVEL.VERBOSE);
}
Look for these log patterns:
LogMeaning
✅ RevenueCat configuredSDK initialized successfully
✅ Loaded X productsProducts fetched from store
ℹ️ User has no active entitlementsUser hasn’t purchased
❌ Failed to fetch offeringsProducts couldn’t be loaded

Still Stuck?

  1. Check RevenueCat’s official docs: docs.revenuecat.com
  2. RevenueCat community: community.revenuecat.com
  3. Check error link: Most errors include a URL with detailed info

Next Steps

Remove / Disable

To disable payments while you configure RevenueCat, set: apps/mobile/features/feature-registry.tsxfeatureFlags.payments = false For production removal guidance, see Removing Features.