Get help with your SDK implementation.
Recently active
Hi, I am trying to finalise testing my app on TestFlight before submitting, however, my paywall keeps loading non stop after user signs up. I tried the same flow with local development and everything works as expected. What am I doing wrong here? I am using Expo btw.
Hi,I have a mobile app using the RevenueCat SDK for in-app payments. We recently developed a WebApp where users will be able to sign up and purchase a subscription directly from the web using Web Purchase Links.I’d like to clarify one point: to avoid using Redemption Links, I understand that I need to provide an app_user_id. What’s the best way to create a new RevenueCat customer with an app_user_id directly from my WebApp? Is there an API endpoint or recommended approach for this flow?Thanks for your support!
The latest version of cordova-plugin-purchases 7.x.x includes an upgrade to “Google Play Billing Library 8”.Is this the same library described in the plugin’s home page stating that “Billing Client v7 will be the latest version this SDK will ever support“ and that Google will not allow changes after August 31st 2026.I’m trying to figure out is Google Play Billing Library 8 in the plugin’s release 7.0.0 is the same thing as the Warning message calls “Billing Client” on the plugin’s home page. Thanks
I’m using the flutter SDK.I have a simple screen that loads the current offering, iterates over each availablePackage, and outputs some details about the package.In RevenueCat, the offering has 6 packages, and each package has a subscription product. The products are for a Web Billing provider, and each is clearly configured as a subscription (the billing cycle shows as “Yearly” or “Monthly” on the product page).However, each of the packages has a “nonRecurring” recurrenceMode (via package.storeProduct.defaultOption.fullPricePhase). Shouldn’t that be “infiniteRecurring”?Code for the flutter widget below:import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';import 'package:purchases_flutter/purchases_flutter.dart';import 'package:pz_common/common/widgets/async_value_widget.dart';import 'package:pz_common/localization/string_hardcoded.dart';import 'package:pz_common/subscription/application/subscription_service.dart';class SubscriptionDebugScreen
Hello guys I recently installed revenuecat for capacitor to create in app purchase model to get the approval for apple with the subscription topic. both of my products are in the status Waiting for Review and still can’t see into simulator o xcode the modal.. can someone help me or have any example that products in this state can be tested in xcode or simulator?
Hi all,I’m testing a retention promotional offer configured in App Store Connect and mapped in RevenueCat Customer Center (React Native SDK). When I go through the cancel subscription flow, Customer Center correctly presents the promotional offer, and I see the native price sheet.After confirming with Face ID, though, the purchase fails and I get the system alert:“Unable to Purchase. Contact the developer.”It looks like this happens right after authentication. From what I understand this might be related to promotional offer signing or configuration.Setup details: RN SDKs: react-native-purchases + react-native-purchases-ui (current versions) Customer Center is showing the offer correctly Promo offer is active in ASC, mapped to the right subscription in RC Using an account with a Live Subscription in product env (Live App Store) Has anyone else run into this error when redeeming a promo from Customer Center?Thanks!
Hello,I’m trying to integrate Revenuecat Paywall into my Flutter app and getting an error like below :Xcode build done. 60,5sFailed to build iOS appCould not build the precompiled application for the device.Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:47 Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:762 Error launching application on Mustafa1. Exited (1). On line 116:47 in PaywallData+Default.swift is : static let defaultTemplateBaseURL = Bundle.module.resourceURL ?? Bundle.module.bundleURLSo I changed every module to main and it worked. But I know this is temporarily solution. What should I do or what I’m missing ?
Im getting this error:ERROR: 😿‼️ RevenueCat SDK Configuration is not validYour app's Bundle ID 'com.yh.que.watchapp' doesn't match the RevenueCat configuration 'com.yh.que'. This will cause the SDK to not show any products and won't allow users to make purchases. Please update your Bundle ID in either your app or the RevenueCat website to match. In the app store my bundle Id is: com.yh.quemy app bundle id: com.yh.quewatchos: com.yh.que.watchapp if I change the App Bundle ID in the RevenueCat dashboard to “com.yh.que.watchapp” it works however but “In app purchase key configuration” will throw error saying the bundle error doesn’t exist in app store connect. Has anyone faced this problem?Thanks
Hi all, i’m very new to revenuecat paywall UI. i have implemented it succesfully in my flutter app for android, but i’m failing to use these listeners. onPurchaseStarted onPurchaseCompleted onPurchaseError onRestoreCompleted onRestoreError onDismissWhere do i listen for them? because when i click the restore button on the paywall ui, not is happening.
Hi there,I have an Expo 53 / react-native-purchases / react-native-purchases-ui 9.2.0 app which uses RC’s V2 paywalls in production, and I’m getting occassional Sentry reports about crashes on Android:IllegalArgumentException: Software rendering doesn't support hardware bitmaps at android.graphics.BaseCanvas.throwIfHwBitmapInSwMode(BaseCanvas.java:732) at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:82) at android.graphics.BaseCanvas.drawBitmap(BaseCanvas.java:140) at android.graphics.Canvas.drawBitmap(Canvas.java:1664) at u0.G.o(SourceFile:109)...(95 additional frame(s) were not displayed)This seems to happen when my V2 Paywall is triggered (I navigate to a react-navigation screen which uses RC’s `<RevenueCatUI.Paywall />` to display the V2 Paywall. Reports are most common on Pixel 6 / Pixel 7 devices running Android 15+ although I have a few reports on Samsung devices too. I haven’t been able to reproduce on my physical Pixel 7 test device, but S
In my paywall, certain things don’t update with package selection. I am using the React Native SDK and Expo. In the paywall, the user is able to select between either a monthly or yearly subscription period by tapping either of the correlating boxes. The selected box is checked, and the border is set to a width of 2, while the unselected product’s border width is set to 1. On Android: The border width does not change on selection, but the checkmark does.On iOS: Both the border and checkmark work properly.On both: There is a text field saying “Auto-renews for {{ product.price_per_period }} until canceled”, but the variable does not switch to reflect the monthly price, it’s always set to the annual price. Is there something specific I’m supposed to do to make it function correctly?
When I use {{ product.offer_period_with_unit }}, the paywall displays correctly in the bottom button, but the top button displays “1 year”, using the same variable. This is testing with TestFlight on iOS.
Hello Revenuecatters:we are having an issue with Paywall layout, making the paywall not usable from a customer experience standpoint, after updating to Android API 35. Does anyone else have this issue? The issue is that the padding of the paywall is pushed down making the pay button below the fold on the screen and therefore the user cannot press on it.
Hi!We have integrated Revenuecat with AppsFlyer for running ads on Apple Search Ads and Meta. The Apple Search Ads integrated is working, but we have some issue with getting attribution to work for Meta.We are doing these calls: await Purchases.collectDeviceIdentifiers() await Purchases.enableAdServicesAttributionTokenCollection()... if (appsFlyerConversionData) { await Purchases.setMediaSource( appsFlyerConversionData.data.media_source, ) }However, it seems that ‘enableAdServicesAttributionTokenCollection’ is only relevant for Apple. How do you collect similar data for Meta?
Hello,I’im displaying my paywall with a passed offering but when the user first opens the paywall the image is displayed late, which makes the paywall appear a bit cheap. Is there any way to “preload” the paywall? theres already so much caching anyways happening :DThanks a lot
When a user starts a subscription, I can see it under:allPurchasedProductIdentifiers: [“com.xyz.weekly”]Which is perfect.However, after they cancel subscription, I still see “com.xyz.weekly” under allPurchasedProductIdentifierI don’t use entitlements and offerings, so I can’t check active entitlements field.Is there solution to this?
Hello, I have been exploring with the new paywalls from revenue cat , and i encounter what i assume is a bug. I am using react-native and have for both purchases and purchases-ui the latest version 9.2.2. When rendering most of the predefined package stacks , i get a warn: 'Could not determine price format because price string is incompatible.'. In the revenue cat preview everything looks great but on the actual device , the offerings are wrong, some text is missing entirely in the prices section. This is how the package looks on the preview: And in the actual app: On all of them it looks like the package selection is not working. Am i missing something in the configuration? Any help is more then welcomed.
Hi!I am trying to integrate RevenueCat into my Expo project, but I keep getting the following error: ERROR [RevenueCat] 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). I double checked all configuration in both RevenueCat dashboard and App Store Connect:The product ids are matching. Paid Applications Agreement and tax forms are signed. App Store Connect subscriptions are in Ready to Submit state. In-app purchase key configuration is set up. I am testing the app in the iOS 18.6 simulator with the local dev build I run with “npx expo run:ios”.I’d appreciate any help with this because I am out of ideas what goes wrong.
I'm running into an edge case with RevenueCat when handling purchases via a Web Purchase Link after a user's subscription has expired. ProblemWhen a user makes a first-time purchase via a web purchase link, the customer info updates correctly and addCustomerInfoUpdateListener fires as expected.However, if the user’s subscription has previously expired, and they make a new purchase via web checkout, the customer info: Does not show the new active subscription Does not trigger addCustomerInfoUpdateListener This causes the app to remain in a non-subscribed state. What I’m already doing After the user completes the web checkout and returns to the app, I: Call Purchases.invalidateCustomerInfoCache() Then call Purchases.getCustomerInfo() I’ve verified that the purchase does go through successfully, since in the RevenueCat Dashboard I can see both the expired entitlement and the new active entitlement.EnvironmentTesting in a Sandbox environment where monthly subscriptions renew eve
Hi,We are currently experiencing a bug where customers are unable to proceed after completing a purchase. The RevenueCat webhook is being triggered, and the payment is successfully processed, but nothing happens on the frontend. It seems that the event is not firing as expected, which is causing significant issues for our users.Here is our implementation: <RevenueCatUI.Paywall onPurchaseCompleted={({ storeTransaction }) => { try { track('free_trial_premium_button', { partnerGroup }); AppEventsLogger.logEvent(AppEventsLogger.AppEvents.Subscribe, { [AppEventsLogger.AppEventParams.Description]: 'Purchase completed', [AppEventsLogger.AppEventParams.Currency]: 'EUR', [AppEventsLogger.AppEventParams.ContentID]: storeTransaction.productIdentifier, [AppEventsLogger.AppEventParams.NumItems]: '1', }); router.replace(finalLoading); } catch (e
I am building this app https://testflight.apple.com/join/G1a2Gdxx but apple keep rejecting it They are replying with pretty much same thing again and again where as subscription are not approve they are not able to test. And revenuecat forum show the subcription needs to be approved first before it to work. Looks like chiken and egg problem. Tried with sanbox account but still loader is playing infinitely but now apple has rejected the susbcription itself. Can some one please help PS: everything seems work with Storekit configuartion while running from xcode I see multiple people in stackoverflow and apple forums are facing same thinghttps://developer.apple.com/forums/thread/793924https://stackoverflow.com/questions/62252571/app-using-revenuecat-got-rejected-in-review?utm_source=chatgpt.com
According to the docs, the only way to cancel through Web purchases is via Dashboard > User > Cancel flow. This is manual. I’d like to create a programatic way to do this. Does the `@revenuecat/purchases-js` allow for this? I don’t see anything obvious.
Hi everyone,I’m using @revenuecat/purchases-capacitor-ui with the RC Paywall Editor to show my subscription screen:const { result } = await RevenueCatUI.presentPaywall();Purchases work fine, the promise resolves.However, when the user taps Restore Purchases button inside the paywall: The restore actually happens (I see the RevenueCat webhook fire, and the user’s entitlements update in Purchases.addCustomerInfoUpdateListener). But the paywall stays open because presentPaywall() never returns, it’s “stuck” waiting. Questions: Is this expected behavior for presentPaywall() after restore in the Paywall Editor? (I also tried presentPaywallIfNeeded({ ... }), but observed the same behavior.) Is there a way to programmatically detect that restore finished so I can navigate away? (I coudn’t find a dismiss method in the Capacitor sdk) Setup:Capacitor 7.1.0 @revenuecat/purchases-capacitor 11.1.1 @revenuecat/purchases-capacitor-ui 11.1.1 iOS + AndroidThanks!
Hi team, I’ve been facing a persistentissue with the sandbox environment, for more than a week now. I was able to purchase subscriptions initially but all of a sudden they stopped working. I always get the Unable to process your request. Please try again later. Environment: Sandbox error.Now initially i though it was a me problem, thinking maybe the code changes broke something. But then I googled a lot, asked chatGPT for the solution. Tried everything but to absolutely no avail.This is the error I get in the terminal ERROR [RevenueCat] 🍎‼️ There was a problem with the App Store. ERROR [RevenueCat] 💰 Product purchase for 'unferturfer899_1w_3d0_7d299' failed with error: PurchasesError(error: There was a problem with the App Store., userInfo: ["NSUnderlyingError": StoreKit.StoreKitError.unknown, "readable_error_code": "STORE_PROBLEM", "source_function": "asPurchasesError", "NSLocalizedDescription": "There was a problem with the App Store.", "source_file": "RevenueCat/StoreKitError+Ex
If I setup my paywall (v2) for english only it works.As soon as I add another language (in my case japanese and thai), I get this errors causing the fallback paywall to be shown:2025-08-14 12:49:01.707 18237-18237 [Purchases] xxx E Missing string localization for property with id: 'Z_ph1YtWAp', for locale: 'en_US'.2025-08-14 12:49:01.707 18237-18237 [Purchases] xxx E Missing string localization for property with id: 'TM_G22_izX', for locale: 'en_US'.I tried to export the resources as csv and add those 2 ids manually and re-import, but it says they aren’t present.
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.