Discussion and help from anything related to RevenueCat.
Recently active
I’m using Expo and implementing RevenueCat on my app for the first time, and it’s been frustrating. Even though I followed every step in the documentations, it seems like something’s wrong, but the worst part is that there’s no debug. When I try to console the offerings for the app, all I receive is this message: “Error: There is an issue with your configuration. Check the underlying error for more details.” And nothing else. I have absolute no idea of what to do. Inumerous YouTube tutorials, articles, the documentation, NOTHING seems to work. What can I do???
Hello there!We’ve been struggling with a user that has and loses its entitlements from time to time, with no reason. To fix it, we built our RevenueCat integration from scratch, because we upgraded different major versions too easily… and well, it sounded we were logging in too much, restoring purchases too much, etc.So during the debugging we arrived to this error:There was an unknown backend error. Error creating subscriber alias. Alias limit reached. (7255)In this GitHub issue in the iOS SDK we saw that the root problem is that you changed something in your backend that made a user not have more than 50 aliases.I don’t want to discuss if it’s a good decision or not, because maybe it is, but what should we do in case someone logs in, restores purchases, logs out, restores purchases, logs in, restores purchases, logs out, restore purchases… a lot of times? Eventually that user will create 50 aliases, but that’s a fair behavior, right?Or just a person that downloads the app 25 times, r
Hello there, Just a quick one, i’m using Thunkable and I linked it to RevenueCat. In the past i had issues acknowledging Google Play’s purchases and subscriptions, does RevenueCat does it automatically? Thank you very much
As far as I can see, there is no property or method to directly get the monthly price of an annual subscription in Unity.I found this thread from a month ago with the same issue, but everything discussed in there only applies for the native Android and iOS SDKs: How do we calculate this in Unity and show the currency symbol in the correct position (some countries have it before and same after the price)?
RevenueCat project setting, I keep entering my In-app purchase key configuration but it does not allow me to select “save changes” and when I come back to the same setting page, I don’t see my entry in this section persisting. Has anyone countered this?
Currently, I am not a RevenueCat user.I use pure StoreKit2, to handle subscription and in-app purchase, without any issue.I also do not have a server, to handle any purchase related thingy.However, due to the frustrated high approved refund rate, I am interested in RevenueCat’s offering - https://www.revenuecat.com/blog/company/handle-apple-refund-requests-automatically/But, I wish to keep my existing StoreKit2 untouched, because they are working without issue.My sole goal is to able to handle CONSUMPTION_REQUEST, to reduce refund rate. I am only concerning on the upcoming new users, if we ever integrating RevenueCat. I am not concerning existing users. Hence, can I skip this step, as it seems complicated to me - https://www.revenuecat.com/docs/migrating-to-revenuecat/migrating-existing-subscriptions. Is it as simple as having this line of code? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsK
HelloI have integrated in-app purchases for the application via Renevuecat with React Native Expo. In debug mode, my renevuecat packages are coming without any problems on the simulator and I can buy them. I am getting the packages using getOffering(). This issue is present on both Android and iOS.But when I publish my mobile application to production, the packages are not coming. Can you help me with this?Expo : 51.0.38React Native : 0.74.5React:18.2.0Thanks in advance
I'm working with flutter, using an apple sandbox account. According to the logs, everything seems to be working fine.PROBLEM - 1But after clicking the paywall and logging in the sandbox credentials, I get this error 2: there was a problem with the app storeHow do I resolve this?PROBLEM - 2In the iPhone emulator, after clicking on paywall, the Apple login modal works, but when I create a build for TestFligh on my iPhone, after clicking on paywall, nothing happens. What could be causing this?PROBLEMA - 3After clicking on the paywall to purchase a plan, shouldn't the package purchase mode automatically open in the simulator? All that appears to me is a modal to log in with apple credentials. flutter: 🏠 DEBUG: Starting HomeScreenflutter: 🛍️ DEBUG: Checking premium accessflutter: 🛍️ DEBUG: Checking if RevenueCat is configured...flutter: 🛍️ DEBUG: Do you have premium access? falseflutter: 🛍️ DEBUG: Entitlements active: {}flutter: 🛍️ DEBUG: All entitlements: {}flutter: 🛍️ DEBUG: Search
Apple Review is getting rejected repeatedly due the following error: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 0.) Underlying error: The request timed out.. This is only happening on Apple Review devices. I’ve tested in Simulator and various physical devices with different iOS versions and cannot reproduce. Here’s how I initialize RevenueCat: ...Future<void> initRevenueCat(ProviderContainer container) async { if (!Platform.isIOS) { throw UnsupportedError('Unsupported platform for revenuecat'); } if (kDebugMode) { await Purchases.setLogLevel(LogLevel.debug); } final configuration = PurchasesConfiguration(revenueCatApiKey); await Purchases.configure(configuration); Purchases.addCustomerInfoUpdateListener((_) { container.invalidate(customerInfoProvider); }); Purchases.setLogHandler(revenueCatHandler);}...Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.
[using Flutter SDK] on iOS when I call Purchases.purchaseProduct and it throws the exception(s) PurchasesErrorCode.paymentPendingErrororPurchasesErrorCode.storeProblemErrorThe docs suggest that this is not an error and to inform the user that the purchase is pending.For some customers, they do not succeed in setting up a valid payment method at this point. I have instances where the actual purchase comes through 30+ days later (when a payment method is finally established, probably for another reason). At this point the payment is taken but the user may have uninstalled my app by then! Ideally, I would like to cancel the pending purchase in the App Store at this point and then require my users to go through the purchase flow a second time.How can I programatically cancel a pending purchase on iOS or at the very least, see this state outside of the purchaseProduct exception and report it to the user?
I am showing a discount paywall, after the user cancels the first paywall, but for some reason, It works well while testing, while in test flight, but once approved by apple in production it throws the below error RevenueCatUl.PaywallError 0The RevenueCat dashboard does not have an offering with identifier'pro_40_off_paywall'.also shown in the image.code - try {const secondPaywallResult = await RevenueCatUI.presentPaywall({offering: {identifier: 'pro_40_off_paywall'}});Even thought “pro_40_off_paywall” exists and works in dev and in testflight, hope someone can please help.
I put out a build using xcode16.2.. and started getting ipad users on older ios versions telling me the app crashes on startup.. I was finally able to reproduce and I get a crash when initializing rev cat crashes on this lineprivate let purchaseCompleteCallbacksByProductID: Atomic<[String: PurchaseCompletedBlock]> = .init([:]) Xcode reports:Thread 1: signal SIGABRTAn abort signal terminated the process. Such crashes often happen because of an uncaught exception or unrecoverable error or calling the abort() function. I’ve not gotten reports for iphone users.. but I’m not certain it’s just ipad related. Has anyone seen this? I haven’t touched the store code in a while.. the particular file that invokes rev cat hasn’t been touched in a year. I support older ios version.. 12.4 is the lowest so it’s using an older version of the sdk as well : ver 4.43.3 Any thoughts ? feels like it may be somehting cropped up with the new xcode and sequoia .. I’m not sure what else it may be
I have downloaded my p.8 file to upload to revenuecat but I am getting message it’s the wrong one - it’s asking for a subscription file but I don’t see that as an option in the apple developer account - please help!
Hey folks,how is it possible to set up the condensed footer for my iOS app? Im using the Bengal paywall and I can see in den preview settings that there is a possibility to set it up as fullscreen, footer and condensed footer. I can't get it to be the condensed footer version. Do I have to put this into my code? Thanks for any help. Best,George
Hello,I just want to ask1. What are the rate limits of the REST API?2. Is it ok if I call the REST API for every webhook received or is that unnecessary?Thank you! :)
Hey,I suddenly started getting 500 errors from the grant promotionals API. I’m running a promotion on my app right now that all new signups get free access until January 2. This of course is suddenly broken.The response I’m getting from RevenueCat is{"code":7110,"message":"Internal server error."} I of course want to figure out what the problem is now, and not 48 hours from now when support finally gets back to me.
I want to use the RevenueCat SDK in my iOS widgets. I tried to use it once before but our users were reporting that their widgets would randomly show “no subscription” (our UI when we determine the user doesn’t have a current subscription), so I commented out the RevenueCat specific code but now I want to try to add it back in. The SDK notes say (https://www.revenuecat.com/docs/configuring-sdk):“You should only configure Purchases once, usually early in your application lifecycle. After configuration, the same instance is shared throughout your app by accessing the .shared instance in the SDK.” However there doesn’t seem to be a good way to achieve this inside an iOS widget since getTimeline() can be called multiple times, I didn’t see another place where you can easily instantiate a singleton RevenueCat instance. I’m not sure if this multiple Purchases object issue was the cause of our previous issues where sometimes it was reported the user didn’t have a subscription even when they d
purchases_flutter: ^8.3.2I keep getting this error and I followed Google Play Checklist but it did not help me. I have an offering with 3 packages. I made sure that identifiers in RC are the same as in the Google Play Store except for “:auto-renewing” which is appended to the identifiers in RC. Please see the image When examining each product in RC, the product status is set to OK as shown in the following image: Here is how the product identifiers look in the Google Play Store: In the Google Play Store, the products are active as shown in the image:Also, I confirmed that the Google Play Package is correct and I do have valid credentials as shown in the image. I am not sure what else to do. Could someone please help?
Is there a way to change the styling for the WebSDK checkout form fields? I know we can update the general styling for the form but it is causing some UI issues:The select field for country styling looks like this: Also, on prefilling the card details in the browser, it looks like this: I tried overriding the css variables but no use. Is there any way to control this?
We are hoping to do a first release on app store with our subscription paywall, however, we want to allow our testflight users to continue to test for free. I want to check if app is downloaded via testflight environment and conditionally bypass the paywall. StoreKit has a Method called a thing called AppTransaction that has a environment field to it. There are StackOverflow post that resolved it using swift, but i am using expo. Is there something equivalent in revenueCat? What is the best way to approach this?
I'm using presentPaywallIfNeeded to call a paywall in Flutter. But I want it to be locked, user cannot swipe to close. How do I do this?
There is an issue with your configuration. Check the underlying error for more details. [Error: There is an issue with your configuration. Check the underlying error for more details.]{"nativeStackAndroid":[],"userInfo":{"underlyingErrorMessage":"There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from the Play Store.\nMore information: https://rev.cat/why-are-offerings-empty","readableErrorCode":"ConfigurationError","readable_error_code":"ConfigurationError","message":"There is an issue with your configuration. Check the underlying error for more details.","code":23},"code":"23"}how to fix this issue? I have checked ids. they match. Moreover, I’m also able to import products from console to revenue cat? But when i use sdk it gives error. My app is in internal testing and is waiting for review. Do I wait until review? Moreover, I don’t think closed testing would be the issue? Otherwise I shouldn’t be able to add subscr
Hello. We’ve integrated webhooks (Django rest). Basically what the user sees on frontend once they click is a spinner. Meanwhile we fire purchasePackage which in no time upon finishing should fire a webhook to our backend.. on the backend we create a Payment object with the transaction id from the webhook. On frontend as the spinner is spinning, after the purchasePackage request goes through, we wanted to begin verifying whether the backend has synced already (aka created the payment object). We wanted to call in a loop payment/<payment_id>/state … but for that we need transaction_id that was send in the webhook which is what we assumed will be returned from purchasePackage as part of the response … but as we understood, we’re not going to receive the transaction ID in the response of purchasePackage at all? … so what is the best way with capacitor to proceed to get the correct transaction id? Or do we have to completely change this logic ..thank you
I’m looking for some guidance on handling a case where a user can’t restore purchases on an Apple TV with multiple users. The setup is:The user who purchased my annual subscription (let’s call them User A) can access all premium features throughout the app. They are not the default user on the Apple TV, but I’m not sure if that matters. The default user on the Apple TV (User B) is using my app without a subscription and is trying to restore purchases to unlock premium features. When they do that, they get a MissingReceiptFileError. My Apple TV app is configured to “Run as Current User”, so it manages separate data for each user on the device (I’m not sure if that’s important to RevenueCat or not).The user then tried to delete the app and reinstall it, this time using the default Apple TV user (User B). This is what happened:They get the “A family member has already bought this item” message when downloading the app, and confirm the download They open the app and try to subscribe to the
Hi,In my SwiftUI app, I manage the app state with enums, and the paywall only presents to the user when I set the value of uiState to .displayPaywall.When this happens, the following code runs: case .displayPaywall(let uuid): PaywallView { viewModel.retry() } .presentPaywallIfNeeded( requiredEntitlementIdentifier: "premium") { _ in viewModel.fetchLandmarkInfoIfAllowed() } }And this is the PaywallView. The idea being that if the user dismisses the Paywall by clicking the X button, I show a simple message and a button that should supposedly trigger the Paywall view again: struct PaywallView: View { let onRetry: () -> Void var body: some View { VStack { Text("Max free daily limit reached. Upgrade to Premium for unlimited use.") .multilineTextAlignment(.center) .padding() Button("Retry") {
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.