Discussion and help from anything related to RevenueCat.
Recently active
Im encountering a nasty bug that is severely messing with the functionality of my app; once a user purchased at the end of the onboarding they immediately get routed back to the welcomeScreen which is the start of the homepage. I can’t find any errors whatsoever but I feel like it has anything to do with RC. ive also enabled the debug logs but im unable to find anything. Where am I supposed to see these logs when working with FF? Any clues on how to fix this? thank you!
Most of my offerings have same set of products.Considering I need to run multiple A/B tests involving metadata’s small change to test paywall copies and other small UI/UX changes.Which is the best way to handle multiple offerings in RevenueCat admin page?Should I delete unused offerings from admin panel when A/B test finished?Or maybe reuse offerings from previous A/B tests and update their metadata, but wondering if it will mess up original A/B test where it was used for?Are you planning to add some sort of offerings archiving to avoid them being selected, but still visible in charts without deleting them?Is it okay to have 20+ offerings at some time or even more? Already have 10 of them.
Hi,we are using webhooks for updating user profiles in our database. So far everything worked fine, but from today (or maybe yesterday) we can’t do this anymore for promotional “purchases” because the webhook event body is missing the app_id property. It is there for regular purchases.promotional:"api_version": "1.0", "event": { "aliases": [ "xxxxxxxxxxxxxxxx", "$RCAnonymousID: xxxxxxxx" ], "app_user_id": "xxxxxxxxxxxxxxxx",regular: "api_version": "1.0", "event": { "aliases": [ "$RCAnonymousID:xxxxxxxxxxxxxxxxxxxxxxxx" ], "app_id": "appd5b6xxxxxxxx", "app_user_id": "$xxxxxxxxxxxxxxxxxxxxxxxx",Is this intentional or a bug?Thanks!
We are building an Capacitor app that has both a mobile and and web components. For now, we are only planning on allowing customers to buy the subscriptions on mobile apps, but still need to provide the subscription level benefits to them when they are on the web. Each user has a user id. What options do we have for getting the customer info with their current entitlements on the web? Currently I dont have any web projects only ios and android. Thanks
I am facing an issue with product identifiers in RevenueCat across different platforms.In my app, I have the same product available on both the App Store and Google Play. While I have attached the same entitlement to both, the issue is that the identifiers are different, which is making it difficult to manage on both the backend and frontend. On the App Store, the identifier is correct. On Google Play, a base plan ID is automatically appended to the identifier. Because of this, I need to handle different identifiers separately in my backend and frontend, which is causing complexity. Since the entitlement is the same, purchases are working fine, but managing separate identifiers for the same product is not ideal.Additionally, I have mapped all products to the offering for both App Store and Google Play in RevenueCat.Could you suggest an efficient way to handle this issue?
I followed this guide while watching a YouTube video. I have enabled all the necessary settings, including “Google Play Android Developer API”, “Google Play Developer Reporting API”. Is there a solution to this problem? I'm new to this, so please explain in simple terms where to go and what to do.
Hello,I have an issue with android where the users should click the restore purchase button for the subscruption to be applied again, I use the built in RevenueCat Paywall.is there a way for the purchase to get restored without the user have to restore it if there is an update?Thanks.
I’m trying to answer the question using RevenueCat charts and data. At what price point is optimal for install to paying conversion that results in higher LTV?We done some A/B price testing, but not across all prices, and also had different prices at different types.I can look at retention charts and segment by Product ID (which we use to distinguish between pricing).But I can’t segment any conversion charts by product ID. So I can’t tell when and at what price we saw higher install to paying conversion, to determine what is the optimal price for conversion and revenue. Maybe I'm looking at this the wrong way. Any help is appreciated!
Hi!I get a platform exception when a user cancels the purchas of an in-app product. I cannot catch the exception. Physical device, product is correctly setup, afaik. Error:PlatformException (PlatformException(1, Purchase was cancelled., {code: 1, message: Purchase was cancelled., readableErrorCode: PurchaseCancelledError, readable_error_code: PurchaseCancelledError, underlyingErrorMessage: Error updating purchases. DebugMessage: . ErrorCode: USER_CANCELED., userCancelled: true}, null)) try { final customerInfo = await Purchases.purchasePackage(currentPackage!); // Check if the product was successfully purchased by verifying active subscriptions. if (customerInfo.activeSubscriptions.contains(revenueCatProduct)) { markAsPurchased(); } } on PlatformException catch (e) { bool isCancelled = false; if (e.details is Map) { final Map details = e.details as Map; if (details['userCancelled'] == true || (details['readableErrorCode']
As far as I understand, the onPurchaseError callback on the PaywallView gets called whenever any of these errors occur: https://www.revenuecat.com/docs/test-and-launch/errors#purchasing-errors. I’ve been testing this by canceling a purchase. But as far as I can tell nothing inside the function call is getting executed:onPurchaseError: (error) {log(“Hello World”);} If I look into my logs, I can see that the error was thrown correctly though: E/[Purchases] - ERROR( 4764): 🤖‼️ BillingWrapper purchases failed to update: DebugMessage: . ErrorCode: USER_CANCELED.nullE/[Purchases] - ERROR( 4764): 🤖‼️ PurchasesError(code=PurchaseCancelledError, underlyingErrorMessage=Error updating purchases. DebugMessage: . ErrorCode: USER_CANCELED., message='Purchase was cancelled.') I’m using:> purchases_flutter 8.6.1> purchases_ui_flutter 8.6.1 SIDE NOTE:Observations apply to both V1 and V2 paywalls.So far, all that I can only confidently say is that onPurchaseComplete and onRestoreComplete are wor
Hi there,I am very into this purchase-subscription-use-everywhere-thing. What I have read and learned so far:A user with his Apple ID is and a custom App User ID (so he is logged in to RC and can be identified across platforms) is purchasing a subscription. In my RC dashboard config for the app ‘Transferring purchases seen on multiple App User IDs’ is set to ‘Transfer to new App User ID’. So in case, if this user (still working with his Apple ID) is (been) logged out and logs in again using a different custom App User ID, the subscription will be transferred to this, and the last App User ID will loose the subscription. Right? The user has a second iOS device (let’s say an iPad). As long as he is using this device with the same Apple ID and the same custom App User ID, he can ‘restore purchases’ and can use the subscription. Right? Now let’s say he adds an Android device. Of course, this is not used with an Apple ID, but a Google ID. The user logs in to RC with his custom App User ID a
Hi,I will try to do my best but this issue is pretty weird but yet, REALLY important. It's related to https://github.com/RevenueCat/react-native-purchases/issues/777 and https://github.com/RevenueCat/react-native-purchases/issues/627Sometimes, for a reason I don't understand, the `login` and `setEmail`/`setPhoneNumber`/`setUserName` functions seem doing nothing. This results in unidentified users that have subscriptions not linked to our backend because the `app_user_id` will be the anonymous one and not the custom one we are using.Then, when the app is killed and opened again, the functions will work correctly (sometimes yes, sometimes no).My login function is pretty simple : const login = async (token) => { updateAuthToken(token); await storeAuthCookie(token); const user = await fetchUser(); await Purchases.logIn(user.id.toString()); await Purchases.setEmail(user.email); await Purchases.setP
Credentials need attention Valid key format The App Store Connect API credentials are not valid or do not have sufficient permissions to list apps. Make sure the key has at least the App Manager role. The App Store Connect API credentials are not valid or do not have sufficient permissions to collect information about your subscriptions. Make sure the key has at least the App Manager role. I followed these steps:Went to App Store Connect. Under “Users & Access’ > ‘Integrations’ > ‘App Store Connect API’ > ‘Team Keys’, I created a new key with ‘App Manager’ access. Downloaded the P8 key file from App Store Connect and uploaded it to RevenueCat. I’ve also double checked Key ID, Issuer ID and Vendor Number. Everything is correct. But, I’m getting the above error.Please help me resolve this problem.
Hi. I want to run a pricing A/B/C test. It appears that only A/B tests are currently supported by RC, but I understand I can run multiple simultaneous experiments. Would the recommended approach be to set up A/B, A/C and B/C experiments, with customer enrollment set to 40%, 30%, 30%? I am a little unclear on what the enrollment splits are actually doing in the presence of multiple experiments - my audience for each experiment would be “any audience”, so would each individual, newly-enrolled user be placed into a single experiment’s bucket? e.g. user 1 goes into the A/B experiment, user 2 goes into the A/C experiment, etc?
I’m just getting started with the REST API, and whilst looking through the docs and the getting started guide for v2 and v1, I noticed that there doesn’t seem to be anything that actually tells you the root url to call. All the endpoints are there and you could guess it might be ‘https://api.revenuecat.com’ but it would actually be really useful in the getting started guide to say something along the lines of “The base url request path is xxxx”I think the only place it actually shows is on the “getCustomers” example an even then if you’re using dark mode it’s not visible.Just a little bit of feedback
I generated promo codes for a one-year annual subscription in my app and used them for promotion. However, RevenueCat tracked the revenue from these promo codes as real purchases, displayed it on the dashboard, and generated an invoice of $110, which is incorrect.Here’s some background:On December 24, I generated some in-app purchases and subscriptions, then configured and uploaded the In-App Purchase Key following the guide. However, after that, I created new subscriptions and in-app purchases for promotion, which RevenueCat mistakenly tracked as real revenue.Today, I generated a new In-App Purchase Key Configuration and uploaded it again. Please help me resolve this issue.
I have distributed a bunch of promo codes for my IAPs. When these promo codes are redeemed, they appear as normal purchases in revenue cat console. I can’t tell them apart from actual purchases. Is it possible to discern one from the other in the console?
Hello I was wondering if anybody could help me, i’m trying to implement subscription testing into my app and in doing so I’m following the steps on RevenueCat on how to implement the StoreKit.When doing this, it does not allow me to create a new product in my StoreKit file (Step 3: https://www.revenuecat.com/docs/test-and-launch/sandbox/apple-app-store) I’ve tried editing the JSON and that completely corrupts my project.I’m not sure what to do / how do get round or even avoid this step, if anyone can help it would be greatly appreciated.
Hi,I upgraded the SDK from version 7.6.0 to version 7.15.0, and got this message when publishing on the Google Play Store: This release includes the com.google.android.gms.permission.AD_ID permission but your declaration on Play Console says your app doesn't use advertising ID. You must update your advertising ID declaration. Our app does not include advertisings and does not use this permission, but using the SDK adds it to our manifest.Is this expected? Is there any way to avoid this?I confirmed this is caused by the SDK upgrade, as reverting back to SDK 7.6.0 solves it and allows publishing on the Play Store.Thanks!
Hello,I have an Expo app running on iOS successfully for sometime. I wanted to add Expo Metro Web but I keep getting blank screen. I think it is because of an uncaught error. Google Chrome Console says… Uncaught Error: The package 'react-native-purchases-ui' doesn't seem to be linked. Make sure: - You rebuilt the app after installing the package- You are not using Expo GoDoes anybody know how I can resolve this?Thanks..
I’m wanting to implement like a ‘Launch Discount’ feature in my app. I have implemented everything and it works well, to find out that the user (even though they are eligible) aren’t getting their free trail. I wanted to offer this promotional offer with a free trail. So after their trial ends, they are charged for the promotional offer for the first year, then the usual price the year after that. Currently when they try to purchase this promotional offer, they’re only offered to purchase straight away. Cannot find anything online in regards to this, so I’m assuming this is not possible?
Hello. I’ve only recently been flagged for the missing Restore button on my app.I’m experiencing the ‘Receipt Missing’ error for the restore action. I’ve been pulling my hair out for 2 days on this issue. I’m using Expo and have limited access to error logs. I’ve read EVERY existing post, github issue and document and none are helping my scenario.I’ve added the requisite code in your documentation for my react-native implementation.try { const customerInfo = await Purchases.restorePurchases(); if (Object.entries(customerInfo.entitlements.active).length > 0) { return true; } else { return false; }} catch (e) { return e}I”m testing my app on Testflight and using Sandbox accounts, and making a purchase (which has been working for over a year in RC), before trying the restore button.My Restore button displays the prompt for my sandbox account. On submit I get an error: “Error: The receipt is missing”Here’s my testing flow (as crazy the following appe
Hello!On production - Paywall using only default English language. I have configured Ukrainian language on Paywall setup page, but still - even if region and language is set to Ukrainian, it still localized as English. Reproducibple for all iOS users.Product title is correctly returned from AppStore (in Ukrainian), but text under offer and all buttons are in English: I am using such lib versions in ReactNative:"react-native-purchases": "7.24.0","react-native-purchases-ui": "7.24.0", My questions:1. Maybe there is some option for paywalls to directly pass the desired language?2. Maybe I just need to update lib version? 8.X.X as it seems to has breaking changes, I would like to be sure if that version has the fix. Or what minimum version has the fix?My app is for learning english for begginers, and users may not even understan that default language texting.I see a lot of similar question but don’t see the actual fix.ps. It is working fine on Android.Thank you!
I ran iOS app promotions using promo codes, but RevenueCat incorrectly tracked them as revenue. This is not accurate, as promo codes do not generate actual sales. I can provide my App Store proceeds as proof. Please help me resolve this issue as soon as possible and let me know the next steps to follow.
We are in the process of gradually migrating our payments flow over to RevenueCat. In fact, we may end up with a hybrid scenario for the foreseeable future (using parts of our own system, and parts of RevCat, namely for in-app purchase management).I know the traditional way to consult entitlements is through the RC SDK, but we were hoping to be able to rely on the webhooks to update the appropriate models in our backend which currently dictate user entitlements (i.e. when to show our existing paywall).I saw in the documentation that webhooks could take 5-60 seconds to fire after the event occurs. This is concerning to the workflow we had imagined: 1. User completes IAP, 2. We get a near-immediate webhook event from RC which we use to update our database, 3. All future requests from that user are no longer blocked by our paywall (based on our own logic consulting our own database).Is this bad practice? Is the surest / fastest way to get this information to consult RC SDK for it? If the
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.