Skip to Content
PaymentsTroubleshooting

Payment troubleshooting

Check these settings when a paywall is empty, a purchase fails or Pro access does not unlock.

No products or offerings come back from RevenueCat

Check that RevenueCat has a current offering with packages attached, and that the product identifiers match App Store Connect or Play Console.

Then check the store setup:

  • On iOS, complete the Paid Applications Agreement, tax and banking requirements. Fill in the product’s required metadata and confirm its availability.
  • On Android, activate the intended base plans and use an eligible license tester with your Play Console test release.
  • Confirm that the app’s bundle identifier or package name matches the store app, and that its RevenueCat SDK key belongs to that platform.

RevenueCat’s empty-offering guide  covers the platform-specific checks.

StoreKit reports “No active account”

Confirm that the device or simulator is configured for your chosen test method. Use an Apple sandbox account or an Xcode StoreKit configuration, following RevenueCat’s iOS testing guide .

This log message alone does not identify a RevenueCat entitlement problem.

The purchase succeeds, but Pro stays locked

Open the customer in RevenueCat and check that the purchased product grants the entitlement named in config.js → purchases.proEntitlementId. Its default is pro.

The RevenueCat app user ID should match the signed-in Supabase user’s ID. Check that the entitlement is active for that customer, then reopen the app and inspect Profile.

Profile shows Pro, but AI still asks for an upgrade

The app and the AI functions check access separately. Confirm that:

  1. REVENUECAT_SECRET_KEY is set in the linked Supabase project’s function secrets.
  2. The key can read the RevenueCat subscriber record.
  3. PRO_ENTITLEMENT_ID matches config.js → purchases.proEntitlementId.
  4. The active entitlement belongs to the same Supabase user ID.

Run the entitlement configuration check. An unavailable RevenueCat response also causes the server to treat a user as free; inspect the function logs and RevenueCat service status if the configuration matches.

Payments work locally but fail in a cloud build

Check the EAS environment selected by the build profile. Local .env.local values are not uploaded with the project.

Set the matching EXPO_PUBLIC_REVENUE_CAT_API_KEY_APPLE or EXPO_PUBLIC_REVENUE_CAT_API_KEY_GOOGLE there and rebuild. See Production builds.

A Superwall paywall appears, but the purchase does not unlock Pro

Displaying a Superwall campaign does not connect its purchases to RevenueCat. Complete the RevenueCat integration, including subscription status and user identity synchronization.

Repeat a sandbox purchase and check both the RevenueCat entitlement and a paid AI action.

No Superwall paywall appears

Check the exact placement name, attached paywall and audience rules in the campaign. Confirm the platform’s EXPO_PUBLIC_SUPERWALL_API_KEY_APPLE or EXPO_PUBLIC_SUPERWALL_API_KEY_GOOGLE is available to the app.

Restart the development server after changing a local key, or rebuild after changing an EAS environment value. See Superwall setup.

Last updated on