Discussion and help from anything related to RevenueCat.
Recently active
This error could be due to a few reasons. Try the following troubleshooting steps:Make sure your device/emulator is completely updated. Try running on device. Sometimes the emulator glitches out and it must be restarted. Overall, testing on device is more reliable. Restart your device/emulator. Make sure you're logged in with a Google account. If you're running on an emulator, make sure it has Google Play installed.
Hi everyone,We’re experiencing an issue where users who go through a paid trial and then transition into a monthly subscription are still being marked as NON_RENEWING_PURCHASE in RevenueCat — even after a successful payment for the monthly plan.As a result, their premium access is revoked, despite having an active and paid subscription.We’ve reviewed our setup and reached out to support, but I wanted to check here in case anyone else has experienced something similar.Any insights or experiences would be greatly appreciated!Thanks in advance.
They all seem pretty similar. Is there one or two that stand out above the rest?Adjust AppsFlyer Branch Singular SplitMetrics Acquire
In our application we have a logic of a 3 days free use period, that we provide to the user by granting them Promotional Entitlements through RevenueCat API. During that period user can manually click the upgrade button to start a play store/app store subscription. We would expect that once the store subscription is purchased, promotional entitlements would be replaced with the ones from subscription. However this doesn’t happen, which causes some problems. For example, we can’t tell if user is currently using play store/app store 7 days subscription-trial (available once, after which they got billed automatically), because `entitlement.storeType` is always equal to `promotional` and `entitlement.periodType` is always equal to `normal`. Also all the entitlements have product indentifiers starting with `rc_promo`. Only after the promotional entitlement is expired, they get replaced with correct data from app store/play store. Currently as a workaround we manually revoke promotional ent
I’m testing family sharing on subscriptions and IAP in sand box. I have an IAP that unlocks a lifetime access to the app and if users that are in a family sharing group purchase it, other members of the group are able to access it via restore purchase. However, if a member subscribes to the monthly membership, they get access to the app through the lifetime IAP, but are also charged a monthly subscription. When they sign up for a subscription, it creates a new alias.I understand that sandbox environment can be wonky but I’d like to get an idea of the expected behavior in prod from those who have tested this previously. What’s the standard way for users to download a family shared app? You cant access Settings > Your Name > Family > Subscriptions with a sandbox account. Is it expected for users to be charged a monthly subscription even though they have access to a family shared IAP? Thank you!
Hi thereI can see charts for our Active Trials and would like to see a future projected revenue forecast based on when those trials are due to convert.Even better if it accounts for our trial conversion rate based on product, but no problem if I need to guesstimate that myself.How might I do this?Tobin
Hi everyone,I create a Webhook URL but when I try to receive real events but I don't see them in the “Webhook Events” list - is empty and also in my web hook server I didn't receive anything, but in “Recent Transactions” I see it why? “Refresh” - don't do anything.
I’m unable to select the monthly or yearly package, and there is continuous logs in console sayingW/[Purchases](24112): 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.
In my Android app I have a hard paywall and I’m getting problems with app review.Given the hard paywall there is a requirement that the user is logged in to Google Play on the device, there is no login in the app itself. App review did not like this even though I display a descriptive error when a ConfigurationError occurs, saying that they need to login to a Google account on device. They only see this as a crash/non-working app.Even worse, the app is only targeted for Sweden and thus requires a Google account set to the Swedish region. I have however opened this up to all markets just to try to get through app review but they don’t seem to want to login to the Google account I’ve provided in the Google Play console. Is there a built-in way to properly check if the user is signed in to Google Play. When they are not, is there a built in prompt for this I can use? If not, how is this usually handled?
Hi everyone,This issue is still not resolved, and unfortunately I haven't received any response so far.Here is my previous question for context: According to the documentation, when a purchase or other important event happens, I should see some logs under the “View Detail” section of the integration, confirming that the AppsFlyer connection is working. However, even after successful trials or purchases, I see nothing under that section.As shown in the second screenshot, the AppsFlyer integration is active, yet the system still tells me to "connect your integration". So what could be the problem here?I’d sincerely appreciate it if someone could guide me on this. Thanks a lot!
Hey everyone,I’ve been working on an Android app using Next.js 13 (with SSR), wrapped in a Capacitor container. I integrated RevenueCat (@revenuecat/purchases-capacitor) to handle subscriptions. The native logs show that the plugin registers successfully and I can fetch product offerings just fine—RevenueCat pulls the subscription details from Google Play (e.g., monthly, annual). However, whenever I tap my “purchase” button, the actual Google Play purchase dialog never shows up.Here’s what I do see in the logs: Capacitor is recognized as running on Android. RevenueCat logs: “Retrieved productDetailsList…” for my monthly/annual SKUs. CustomerInfo gets fetched repeatedly from the cache (no active subscription found). No sign of purchasePackage(...) or the “Launching billing flow” logs from BillingClient. I also tried: Uploading a signed release AAB to the Play Console in an Internal Test track and installing the app from the Play Store with my tester account. Opt-in link is opene
## 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
Sometimes a user will say they've made a purchase but they don't seem to have access to the content in RevenueCat. What gives? There are several reasons why that might happen, and this article will walk you through what you can do to troubleshoot.If there's no purchases showing in the RevenueCat dashboard it means that either no receipt was sent by that App User ID, or the receipt that was sent didn't contain any purchases. In this case you should:Ask the user to Restore Purchases (or someway trigger the restoreTransactions() SDK method). Restoring will re-sync the current receipt on the device with RevenueCat, and unlock any associated content. There are cases, such as network connectivity failures, where the receipt may never make it to RevenueCat after a purchase. There is automatic retry logic built into the SDK to handle these scenarios, but a manual restore is another way to resend the receipt. Try to confirm with the user that they are logged in with the correct Apple ID/Google
Hi, I have an experiment running with a product that uses a 7-day free trial that shows no data after running for 8-days. I had assumed the data would appear once trials begun converting. This doesn’t appear to be the case. Both products are being purchased and Trial Converted events are now being sent to my CDP and appearing in the RevenueCat ‘trial conversions’ graph.
I’m trying to integrate Adalo with RevenueCat to manage subscriptions and purchases. Since Adalo doesn’t support adding SDKs directly, I’m attempting to connect them using Custom Actions along with Adalo’s Digital Purchase component.The issue I’m facing is that the Digital Purchase component doesn’t provide the receipt data that RevenueCat requires for validating purchases. Because of this, I’ve hit a bit of a wall and can’t complete the integration.Has anyone successfully connected Adalo to RevenueCat using Custom Actions or found a workaround to get the purchase receipt from Adalo? Any guidance or suggestions would be really appreciated!Thanks in advance!
Hi!The product (Flutter) I’m currently building has users both on a web app and in a mobile app.One use case I’m struggling with currently is that a user might buy a premium subscription from the web app through Stripe and then open the mobile app which might have cached the CustomerInfo object for at ~5 minutes.Due to the caching, the user will not immediately see the subscription in the app which is not ideal as it can cause confusion. What are the best practices to deal with something like this?Edit:I know about the invalidateCustomerInfoCache() function. I’m interested to know if there is a recommended way to use that function. Any help and tips are appreciated!
Hi, I wanted to go through an example and understand the current state of a subscriber. The dashboard has “Subscription expired 11 days ago” and my database still has the user marked with the subscription as active and entitled.The way I manage the user database record with entitlements is only via webhooks (I listen to them and grand and remove entitlements accordingly). I think I have some logic issues since in this example the record is not in sync. Example is for user ID: eL9WN4QjQpZgB36ZCPnGhuIC2cq1Customer History in the RC dashboard has these as last few events:My database has these records (event is central USA time): as you can see, the last events are a RENEWAL and then a CANCELLAION after 3 days (which is what my configured grace period is). I did not receive any “conclusion” event for this user. No BILLING_ISSUE, no EXPIRATION nothing like that.As you can see EXPIRATION came first and that is when I removed their entitlements. But then a RENEWAL came 8 days later so I added
We report the USD equivalent of all revenue events for our integrations computed from that day's conversion rate.
If you have an active subscription that should unlock an entitlement but it doesn't, make sure that subscription's product is added to the entitlement in your dashboard.
Hi, I’m trying to send TEST Event to my newly created server with ssl certificate activated. But, I always see this error It wasn't possible to connect, are you sure the URL is correct? But, I can access the endpoint using Post Man without any issue. Please, advice what should I do to diagnose this error. Any help is appreciated. Thanks, JA
I have a use case at the moment where a user who is subscribed to an autorenewable subscription can invite a friend and receive a free month. On Google this is pretty straight forward to implement. The problem is on IOS. I saw we can use the promotional offers in order to implement this. The problem is that I offer that free plan on the server side and the promotional offers can be purchased only on the mobile app side. Is there any way to purchase a promotional offer on our server side?
Hi, we're trying to sync updated subscription from Stripe to RC - for example increase of quantity on the tiered product from X to Y which results in customer paying additional amount Z. This adds new revenue on that product and we wanted to sync that data to RC - tried it both through RC webhooks (coming from Stripe) and directly using RC API to create a purchase. Both result in the same - negative amount of the intial purchase amount (aka -X) on the subscription. Is there any way to achieve this?
The recommended template is used, the default language is English and can be displayed normally;1 However, when I added a new language: Simplified Chinese, and set it as the default, the error occurred in the display.2 If the default language is English and I adjust the test region to mainland China, Chinese UI are not displayed. The interface still shows in English.
In the iOS SDK the `StoreTransaction` type has the `jwsRepresentation` field but it’s marked internal. So I can’t access it. I want this value so that I can send it to my server and verify the transaction with apple. Then our backend can run any necessary updates to the user it needs.Is there a reason this is marked internal whereas most of the other properties are public?
Hi there,We use Segment to route events between all our tools. We have recently integrated AppsFlyer into our app and we would like to send RevenueCat events to AppsFlyer. We currently have the RevenueCat/Segment integration set up where we forward all webhook events. Ideally we would like to forward events from RevenueCat to AppsFlyer via Segment, however I believe this is not possible because AppsFlyer requires a certain event structure which includes having the appsflyerId in the integrations event property. Is there any way that we can make this possible or do we have to set up the RevenueCat/AppsFlyer integration directly?Thanks,Lydia
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.