Get help with your SDK implementation.
Recently active
Hi, I'm reaching out for help with an issue I'm facing regarding a new subscription product I added. I have previously configured subscription products in RevenueCat that are working successfully on both iOS and Android platforms. However, I recently added a new product with the identifier lite_professional_yearly. Here is the setup: The product is added in RevenueCat with the store-specific identifiers: iOS: lite_professional_yearly Android: lite_professional_yearly:lite-professional-yearly The product is added and active in both the Apple App Store and Google Play Console. It is included in the default Offering in RevenueCat. The product shows correctly on iOS devices, but does not appear on Android. Could you please help me investigate why this product is not appearing on Android while it works fine on iOS? Thank you!
## Environment Details - React Native: 0.79.2- react-native-purchases: 8.9.7- react-native-purchases-ui: 8.4.0- Platform: Android- Development Mode: Yes (Expo)- Build Type: Debug ## Issue I'm experiencing an issue with the RevenueCat SDK in my React Native app on Android. During development, the native module is not being properly detected, resulting in the error: ```LOG 📱 [RevenueCat] RevenueCat module check: RNPurchases=false, RCTPurchases=falseLOG 📱 [RevenueCat] Purchases object is not availableLOG 📱 [RevenueCat] RevenueCat native modules not found in NativeModules``` When attempting to initialize the SDK, I get the following error: ```WARN 📱 [RevenueCat] Configure failed but continuing with simulation: [TypeError: Cannot read property 'setupPurchases' of null]``` And when trying to use the SDK's methods: ```ERROR 📱 [SubscriptionContext] Error executing getOfferings: [TypeError: Cannot read property 'isConfigured' of null]ERROR 📱 [SubscriptionContext] Error executing get
I have been trying to get the hybrid mobile app (iOS) working with revenuecat, react native SDK on the native side, and bridging with the web app running in the webview using the web sdk without success, and starting to wonder if it is actually possible if anyone knows?Thanks
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 originalAppUs
I understand that this same question has been asked and answered many time and I want to assure you that having battled with this for over a month now, I have read all the other posts but nothing works. I asked a friend to try subscribing and it worked but for whatever reason, not a single user has been able to subscribe to my app for over 2 months now.I don’t beleive this is parental control because the age limit of my app is just 4 and the error is coming from users all around the world.For added context, I started experiencing this shortly after introducing a weekly subscription plan and upgrading react native to 0.78, and integrating a ota-update package that lets me push updates without going through the review pipeline (I am not pushing any changes that go against Play Policies. Just minor changes). It’s been months now with zero successful subscriptions. I haven’t also had any new subscribers from ios in all this time but I haven’t seen attempts from ios users. For some reason,
We're experiencing an issue with the react-native-purchases SDK where the Purchases.getOfferings() method does not return a response or callback on iOS 18.4. This issue is not present on older iOS versions (e.g., iOS 17.x and below), where the method works as expected.Environment: React Native version: 0.74.3 react-native-purchases version: 8.9.6 iOS version: Issue occurs on iOS 18.4 only Devices tested: Confirmed on real devices running iOS 18.4 Xcode version: 16.2 (16C5032a) Steps to Reproduce: Initialize Purchases with the API key using Purchases.configure(). Call Purchases.getOfferings(). Observe that on iOS 18.4, the method does not return, either as a fulfilled Promise or rejected error. On iOS 17.x and below, the same code path works fine and returns the expected offerings. Expected Behavior:Purchases.getOfferings() should return a valid response or a meaningful error message regardless of the iOS version, as long as the configuration and entitlements are correctly
I’d like to ask for guidance on how to properly handle cases where users attempt to repurchase a subscription product they are already subscribed to.In my app, I’ve implemented a subscription system offering both monthly and annual plans.The issue I’m currently facing is: when a user who already has an active monthly subscription attempts to repurchase the same monthly plan via the paywall, the system silently ignores the request — no callback is triggered, and the only output I can see is the following log:Ignoring purchase request for already subscribed packageWhile investigating this issue, I noticed something interesting: if I configure the package in the offering using PackageType.CUSTOM instead of the standard PackageType.MONTHLY, the PaywallViewModel is able to proceed with performPurchase() (since Package.currentlySubscribed returns false).In this case, the RC SDK ends up calling the Google Play billing flow, which results in an error due to the duplicate purchase. This error i
Hi team, I created the paywall as below and upload a custom image on it. However, the image scale is not consistent on RevenueCat and iOS app. I’ve switch it to ‘Fit’ but seems it still be ‘Fill’.Could you help on this problem? What image ratio and resolution I should used?
Hi,I just submitted a new app to the App Store, but I’ve now noticed some logs in Xcode related to RevenueCat.WARN: ⚠️ Signature failed verification ERROR: 😿‼️ Request to getOfferings(appUserID: "AppUserID") failed verification. This is likely due to a malicious user intercepting and modifying requests. WARN: ⚠️ Signature failed verification ERROR: 😿‼️ Request to getCustomerInfo(appUserID: "AppUserID") failed verification. This is likely due to a malicious user intercepting and modifying requests. Do you know what could be causing these errors? I’d really appreciate your help.Below is the code I’m using to check the subscription status: import RevenueCatimport OSLogpublic final class SubscriptionManager: ObservableObject { private var entitlementId: String = "" @Published public var subscriptionActive: Bool = false { didSet { Logger.subscription.log("Subscription status changed: \(self.subscriptionActive)") } } @Published var customerInfo: CustomerInfo? { didSet
Is it possible to activate Stripes automatic tax collection when using RC-Web?
I'm using React Native to build an Android APK.Since I'm using addCustomerInfoUpdatingListener during app initialization, and within the app, I open WebBrowser to access Web Paywall Links (low code) for payment, will the CustomerInfo be updated after the payment is successful and the WebBrowser is closed? Because if I were to monitor CustomerInfo information
I’m facing a very frustrating error. I’m able to successfully initialize the react-native sdk: useEffect(() => { Purchases.setLogLevel(Purchases.LOG_LEVEL.DEBUG); Purchases.configure({ apiKey: Config.REVENUECAT_API_KEY_IOS, }); const productIds = ['com.***.*****.staging.pro.monthly']; Purchases.getProducts(productIds).then((products) => { console.log('Products:', products); }).catch((error) => { console.error('Error getting products:', error); });}, []) In this case, it returns a blank array of products. However, in my project configuration, I have successfully imported products from App Store Connect. Secondly, when I run Purchases.getOfferings(), it gives me the Error 23 which mentions misconfiguration. I’m not sure why am I getting that error. I have completed all the steps in the https://www.revenuecat.com/docs/offerings/troubleshooting-offerings guide and I’m still getting the same issue. I’m running my app in a simulator. I know that I need a .storekit fi
Hi,We are trying the new web paywall button in one of our app. It is working great so far but we didn’t find the way to get the info inside the app when a payment is done on the web using the web paywall button.We need trigger some code in our app every time there is a payment in the app based on the subscription taken. Today we an in-app payment, we can simply rely on the response of `Purchases.shared.purchase()`.Is there a way to do the same thing with web payment? Thanks!
The fetchOffers method in the purchase_flutter package sometimes returns me an empty list of products while working in the test environment. While I haven’t faced this issue in the production app yet. And I have been using this package since three years and it was working fine till a month ago I updated it to “purchases_flutter: ^8.7.2”. Does any one knows why is it happening? I doubt that if it is due to the configuration issue since it was working fine since three years.
Hope to launch an Android version Web Paywall Buttondirectly using the Web Paywall Button Pay
ERROR: 😿‼️ There was a credentials issue. Check the underlying error for more details. Invalid API Key.This comes up on TestFlight when loading the paywall. It works on production. Not sure where this is happening from?
Hey, I am getting default Paywall on Android using Kotlin Multiplatform (latest version 1.7.7+13.29.1)The errors on the logs are the followingMissing string localization for property with id: '5-cMAYlyz8', for locale: 'en_US'. Displaying default template due to validation errors. Could not process value for variable 'sub_offer_duration' for package '$rc_annual'. Please check that the product for that package matches the requirements for that variable. Defaulting to empty string. Could not process value for variable 'sub_offer_duration' for package '$rc_monthly'. Please check that the product for that package matches the requirements for that variable. Defaulting to empty string.I tried seeing in other posts that could be something in localization files, I changed many times the strings and nothing worked. Any clues?
Hi all, i’m getting this error just when i open up my flutter application in dev mode inside my android emulator: D/[Purchases] - DEBUG(13399): Retrieving customer info with policy: CACHED_OR_FETCHEDD/[Purchases] - DEBUG(13399): ℹ️ Vending CustomerInfo from cache.E/[Purchases] - ERROR(13399): Error deserializing subscription information. The input is not a SubscriptionInfoE/[Purchases] - ERROR(13399): kotlinx.serialization.MissingFieldException: Field 'product_plan_identifier' is required for type with serial name 'com.revenuecat.purchases.common.responses.SubscriptionInfoResponse', but it was missing at path: $E/[Purchases] - ERROR(13399): at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:93)E/[Purchases] - ERROR(13399): at kotlinx.serialization.json.Json.decodeFromString(Json.kt:107)E/[Purchases] - ERROR(13399): at com.revenuecat.purchases.common.CustomerInfoFactory.parseSubscriptionInfos(CustomerInfoFactory.kt:161)E/[Purch
Is there any way to show a component conditionally?Imagine that your app offers three different plans, and you want to display a list of features based on the selected plan. How can we achieve that?As far as I know, this is currently not possible. It's not possible to hide or show content based on the selected product.Is there any plan to support this kind of feature?
Subject: IllegalStateException in Paywall UI Composition (Android)Description:We're experiencing intermittent crashes when launching the paywall with error:"Unsupported concurrent change during composition". Steps to Reproduce:1. Call Purchases.sharedInstance.getOfferings()2. Launch paywall using PaywallActivityLauncher3. Crash occurs randomly during UI compositionEnvironment:- RevenueCat SDK: 8.14.0- Compose: 1.7.8- Device: Pixel 6 (API 34)Additional Info:- Same code works in another app- Crash occurs even with 200ms delay before launchRequest:Can you confirm if this is a known issue? Are there thread-safety guarantees for Paywall UI?
The last thing that I see in logs from RevenueCat is:`CustomerInfo cache is stale, updating from network in foreground.`Full log attached. SDK version: 5.21.0 (iOS)purchases_flutter: ^8.7.3purchases_ui_flutter: ^8.7.3iOS version 18.4.1, not simulator. Not reproducible on all devices only on some.No code was changed, old version of the app stopped working but worked previously.This line `await RevenueCatUI.presentPaywallIfNeeded(value.entitlementId);` never finished. Waited 5+ minutes. No timeouts or other errors.
I am testing out web paywall buttons in Revenuecat Paywalls. While testing out the flow in sandbox url, I get an Error 16, this is the URL for paywall https://pay.rev.cat/sandbox/rzncmmyjvdmgqpaq/123I saw a similar question but here the user was trying to purchase production products while stripe was in test mode, but in my case stripe is not in test mode. I followed this video about web paywall buttons https://www.youtube.com/watch?v=XF9cbvyiK48 and didn’t see him do any special config to get the sandbox paywall working
Hi all,In light of the recent court ruling against Apple taking the 30% cut in the US, I decided to try out the Web Paywall button that RC recently introduced. However, when creating the paywall after creating the web offering, I’m seeing this red alert when I make the button option to navigate to a web paywall. Also noticing that in my code (using React Native + Expo), when showing the Paywall with `RevenueCatUI.Paywall` and my new offering that has the web billing option (along with iOS), the paywall screen errors out and falls back to the default paywall. If I switch out the paywall button option from “Web Paywall” to something like “URL”, I no longer see this issue. Is this related to how I’m configuring web billing in my React Native app? I’m currently using react-native-purchases to configure my iOS and Android SDK for purchases, but do I need to do something similar to ensure the web paywall button works as expected?I’m also using my own custom app user IDs to identify users. Wo
Just a heads-up for anyone working with Paywall v2 in RevenueCat:If you add an image component to your paywall but don't select an actual image, the paywall will break at runtime. This can lead to unexpected errors or fallback behavior.Please make sure to always select an image when adding the image component.@RevenueCat team — would appreciate it if this could be fixed soon 🙏
Hello,I have created a custom Paywall V2 for my offerings and I added a text component with this content:First {{ product.offer_period_with_unit }} free, then {{ product.price_per_period }}. Cancel anytime. The variable {{ product.price_per_period }} is bold while the rest of the content is Regular. The text displays correctly in the preview but in the TestFlight build the variables appears as **{{ product.price_per_period }}**. Could anyone please point me in the right direction to fix this?Thank you in advance. [Screenshot from preview] [Screenshot from TestFlight build]
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.