Environment:
-
React Native: 0.76.5 (bare workflow)
-
react-native-purchases: 8.9.7
-
react-native-purchases-ui: 8.9.7
-
Platform: Android (Google Play Store only)
-
RevenueCat API Key: (confirmed correct in code)
-
Audit Log:
paywall_published
on Default (paywall) by Mukul Sharma @ 2025-05-12 05:34 PM UTC
I’ve published a paywall UI via the RevenueCat dashboard and confirmed in the audit log that it’s live. In my React Native app I’m calling:
export const ENTITLEMENT_IDS = {
PRO: 'pro',
PREMIUM: 'premium',
} as const;
export type EntitlementKey = keyof typeof ENTITLEMENT_IDS;
const presentPaywall = useCallback(
async (entitlement: EntitlementKey): Promise<PAYWALL_RESULT> => {
setIsLoading(true);
try {
const result = await RevenueCatUI.presentPaywallIfNeeded({
requiredEntitlementIdentifier: ENTITLEMENT_IDS[entitlement],
});
return result;
} finally {
setIsLoading(false);
}
},
[fetchCustomerInfo, fetchOfferings]
);
-
I see my
originalAppUserID
correctly. -
I can fetch offerings and prices (
price
variable only). -
In-app purchases work end-to-end.(able to make payment via fallback ui)
Expected Behavior:
The paywall that I designed in the RevenueCat dashboard (with my custom layout, colors, fonts, and buttons) should appear when presentPaywallIfNeeded
is called.
Actual Behavior:
I only ever see the default “fallback” UI provided by the Purchases-UI library, not my formatted template.
Steps to Reproduce:
-
Login user → verify
originalAppUserID
logs. -
Call
RevenueCatUI.presentPaywallIfNeeded({ requiredEntitlementIdentifier: 'pro' })
. -
Observe fallback UI only.
What I’ve Tried:
-
Confirmed paywall is published (
paywall_published
in audit). and up to date status in paywall section -
Rechecked the variable used from https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#how-to-configure-your-paywall
-
Verified API key is correct and matches dashboard.
-
Checked that the entitlement IDs in code exactly match those in the RevenueCat dashboard.
-
Ensured I’m on the latest UI version (8.9.7) on both
react-native-purchases
andreact-native-purchases-ui
. -
Restarted Metro bundler and re-installed the app fresh.
Could you please help me understand why my custom paywall template isn’t showing? Let me know if you need any additional logs, screenshots, or example project code to debug. Thanks so much!
—
Mukul Sharma
smukul085@gmail.com