Discussion and help from anything related to RevenueCat.
Recently active
This is a feature request for Rico.When a user starts a new chat, they often have to repeat the same app details, such as: What the app does Whether it is premium / subscription / freemium / hard paywall When it launched Basic business info like user acquisition cost It would be helpful to have a place to save this as a system instruction or project context for Rico.Rico could then use this saved context in every new chat for that project, so users do not need to repeat it and the answers can be more accurate.
Hi,This is with reference to a post i read: My app is not published on play store yet. I wanted to create subscription, and wanted my testflight users to be able to test them. I created 2 subscriptions under subscriptions and they are in the state “ready to submit”. Attaching image for the same below. my business profile is in all active state. I am unable to figure out why my subscription duration is not coming our currently. i am getting them as null. I have properly configured products → mostly importing from appstore, entitlements, and default offering. i have been stuck on this for 2 days. Can you please suggest what am i missing here?
I’m testing subscriptions with RevenueCat. I want to simulate a user canceling their subscription and verify that RevenueCat updates the entitlement correctly. I’m using TestFlight. I can’t find the subscription under Settings → Subscriptions or the Sandbox account settings to cancel it manually.Is there currently a supported way to cancel a sandbox subscription, or is waiting for it to expire the only option
Hello,I have a problem with the Retention Message API. The default message is not displayed to users when they try to cancel their subscription in the device's Settings app.The request to use this API was approved by Apple for our account. After configuring it for the Sandbox environment, everything worked as expected the image and text were displayed to users.Later, I applied the same configuration to the Production environment. I received the Approved status for the message, but after purchasing the subscription from the App Store, although I can see the subscription in Settings, the retention message is not displayed when I attempt to cancel it.I have tried different Apple accounts from different regions (both EU and non-EU) and tested from physical locations without using a VPN.Also, for clarification, we do not use real-time communication only the default retention message. For additional information:I also tried configuring this message from App Store Connect, as shown in WWDC 20
Hi RevenueCat team,We're using the Paywall Builder's Tabs component to present different subscription plans (e.g. PRO and PLUS), where each tab contains its own complete set of content (carousel, package stack, features, etc.).We've noticed that while Paywalls support custom variables and Rules for controlling the visibility of many individual components, there currently doesn't appear to be a way to show or hide an individual tab within the Tabs component. The only available actions are rename, duplicate, copy, and delete. We would like to show only a single tab’s content depending on mobile app’s clicked features i.e. some should show both Plus and Pro plans, others only Pro. We would like to be able to show only Plus tab or preferably hide a single tab completely.Requested featureIt would be very helpful if individual tabs supported runtime visibility, for example via:Paywall RulesCustom VariablesSDK parametersExamples:showProTab = trueshowPlusTab = falseor{ "show_pro_tab": false,
I'm calling Purchases.shared.getCustomerInfo from my intro screen / AppDelegate on a fresh install to check if the user is premium before routing them to the correct screen. On fresh install, this call takes approximately 6 seconds to return. However, if I call getCustomerInfo again a few seconds later, it returns in under 1 second.Because of this delay, I can't reliably validate whether the user is premium at the point my intro screen needs to make a routing decision.Setup:SDK version: 5.80.0 Platform: Swift, UIKit Call site: intro screen / AppDelegate, on first launch after installQuestions:Why is the first getCustomerInfo call so much slower than subsequent calls on a fresh install? Is this expected behavior (e.g. due to receipt fetch/validation on first call, with caching afterward), or could this indicate a configuration issue on my end? What's the recommended pattern for gating UI on entitlement status during this initial slow fetch — is there a way to speed up the first call, or
Hi, we’re running an experiment and later realized that we’ve set the wrong primary metric. So I tried editing it, but got his message when I clicked “Save Changes”. I didn’t change anything related to variants, but this error keeps showing up. How do I solve this problem? Thank you.
Hi, I’m getting error 23 but there is no specific reason. Already double checked the troubleshooting guide for iOS and no result. Can you please advise?
Hello,After integrating the RevenueCat library into my Android app, the application started crashing on launch.Below is the stack trace:Exception java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:576) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:929)Caused by java.lang.reflect.InvocationTargetException: at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:566)Caused by com.revenuecat.purchases.PurchasesException: at com.revenuecat.purchases.SimulatedStoreErrorDialogActivity.crashApp (SimulatedStoreErrorDialogActivity.kt:55) at com.revenuecat.purchases.SimulatedStoreErrorDialogActivity.onCreate$lambda$0 (SimulatedStoreErrorDialogActivity.kt) at com.android.internal.app.AlertController$ButtonHandler.handleMessage (AlertController.java:186) at android.os.Handler.dispatchMessageImpl (Hand
Hi, we’ve encountered an issue where nothing shows up in the Experiment report, as attached below, even though (1) it’s been 2 days since we started the experiment, and (2) we do see that new customers are properly assigned to each respective variants and (3) nearly 5K new customers signed up in our app in the past 2 days. So apparently the experiment is running properly and there’s enough data to display, but there’s an issue with the report? Thank you.
Hi!7 months ago you posted here that Paypal will be available as payment method in RevenueCat Web Billing. Do you have an updated timeline for this?
Hi, we both have a Live Targeting and a running Experiment at the same time. So the expected behavior would be the Experiment to override Live Targeting, since we’ve set the audience of both the Experiment and Targeting as all new users. However, we found out that the new users -- who signed up after the Experiment was set live -- are still seeing offerings assigned in Live Targeting. Their history clearly says they’ve been enrolled to the Experiment. (please see the screenshot below) Two findings in case it helps:According to the details, the ‘offering_id’ of a user enrolled in the new Experiment is “null” According to the details, the ‘experiment_id’ starts with “exp”, while all the past experiments’ started with “prexp”. <Things we can confirm>We’ve already run numerous Experiments in the past and this never happened. We just simply duplicated a past Experiment to start the new one. We’ve tried re-installing the app, restarting the Experiment, but the issue still remains. Ther
Hello,When users send me support e-mails, RCID is also included in the e-mail - so that i can check users status. Is there any way to deeplink to check users details in revenucat app? To elaborate, is it possible to use like revenuecat://projects/{id}/customer/{id}.
Inconsistencies in Webhooks documentationThere appear to be several discrepancies between the descriptions in the following two documentation pages:Webhooks > Event Types and Fields Webhooks > Sample EventsThe following JSON fields listed in the "Sample Event" example are missing from the "Event Types and Fields" documentation:Refund Reversed: `event.metadata` Not defined in Subscription Lifecycle Events Fields. Invoice Issued: `event.metadata` Not defined in Subscription Lifecycle Events Fields. Virtual Currency: `event.country_code` Not defined in Virtual Currency Transaction Fields. Experiment Enrollment: `event.experiment_enrolled_at_ms` Not defined in Experiment Enrollment Event Fields. Purchase Redeemed: `event.store`, `event.environment` Not defined in Purchase Redemption Event Fields. Could you please clarify which documentation—whether the Sample Page or the Event Types and Fields section—contains the correct information?
I'm using RevenueCatUI.presentPaywall() (Flutter, purchases_flutter 9.x) to show a hosted paywall. I want to show a "last chance" discounted offering the moment a user cancels — specifically when they open the native StoreKit purchase/confirmation sheet and then close it without buying.What I'm seeing: presentPaywall() only returns a PaywallResult (e.g. cancelled) when the entire paywall is dismissed. When the user closes just the StoreKit sheet, the SDK simply returns them to the paywall and no result/callback is surfaced, so I can't react to that specific event.Question: Currently we have the exit paywall implemented when user closes the paywall,Is there any way to detect the StoreKit sheet dismissal while using the hosted paywall UI? Screenshot attached for refernce.
Hi RevenueCat team,We are seeing what looks like the same offering_id: null experiment issue reported here, but our setup does not use live targeting rules or placements:https://community.revenuecat.com/dashboard-tools-52/why-does-my-experiment-not-override-live-targeting-7732Setup:React Native / Expo app react-native-purchases: 10.3.0 react-native-purchases-ui: 10.3.0 RevenueCat Paywalls via RevenueCatUI.Paywall App fetches Purchases.getOfferings() and renders offerings.current Design experiment Enrollment: New customers Audience: 100% Criteria: Any audience No placements in the experiment No targeting rules imported or active on the experiment Two variant offerings: - Variant A: PW Basic Weekly + Yearly 2 - Variant B: PW Basic Weekly + YearlyObserved:Customer history shows EXPERIMENT_ENROLLMENT experiment_variant is present offering_id is null The customer profile’s Current Offering still shows the default offering, not an experiment override We know from screen recordings that t
Hi team, is it possible to localize the Change Plans screen inside Customer Center on iOS?The main Customer Center screen is localized automatically, but after tapping Change Plans, all of the text and plan details on that page still appear in English. I couldn’t find anywhere to add translations for that screen.Is this currently supported?Thanks!
Hello!We’ve setup a Web Purchase Link for an offering using RC Billing. One of the packages supports a free trial period. The link support promo codes. We notice there’s some conflicting information on the page about how much the user will pay after the trial ends when using a promo code. In the example below, we’re using a 100% off promo code. On the left side it’s clear that after the trial ends, the user will pay $0; however, on the right side there’s disclaimer text explaining that after the trial ends, the user will pay the full price of $129. This has led to some questions and confusion. Is there a way to ensure the disclaimer text updates to handle the promo code? Thank you for your help!
Trying to test purchase flows using my iPhone and test flight and I can’t seem to get rid of the item burned into the keychain that makes the purchase stick. I need a way to clear everything and start over.Please advise.
HiI am getting this error and struck at the app submission. I have created the subscriptions in the appstore but they are not approved. When it try by using storekit in simulatot it’s working and to test it on my own iPhone via testflight it’s not working so app approval rejected: Issue DescriptionThe In-App Purchase products in the app exhibited one or more bugs which create a poor user experience. Specifically, IAP product page did not load its content.. Review the details and resources below to troubleshoot this issue.Review device details:Hello,Thank you for your resubmission. Upon further review, we identified additional issues that need your attention. See below for more information.If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know.Review EnvironmentReview date: June 22, 2026Review Device: iPad Air 11-inch (M3)Guideline 2.1(b) - Performance - App Completeness
I’m using the RevenueCatUI package in Unity to display the paywall created in the RC dashboard, which works perfectly on Android, but when I build for iOS, I get the following error when calling the method to present the paywall:`RevenueCatUI/resource_bundle_accessor.swift:44: Fatal error: unable to find bundle named RevenueCat_RevenueCatUI`I’m using RevenueCat 5.76.0. Any ideas?
## TL;DROne of the **product-store-state** MCP tools served from `https://mcp.revenuecat.ai/mcp` has a JSON Schemacontaining an integer literal that exceeds the signed 64-bit range (most likely a `maximum` / `default` /`multipleOf` on a price/amount/timestamp field). When an MCP client forwards that tool definition to theAnthropic Messages API, the API rejects the **entire** `tools` array with: API Error: 400 tools.61.custom.input_schema: int too big to convertBecause the failure happens at tool-definition validation time, *every* request that includes that toolfails — so the tools can't be loaded at all, which blocks any workflow that uses them (e.g. creating /submitting products to App Store Connect through the MCP).This is a different bug from the earlier `create-webhook-integration` null-in-string-enum issue(community tid=7623, fixed 2026-04-28) — same class of problem (an illegal schema value served by the MCP),different tool and field.## Affected toolsThe error appears while l
Google released new version of Next Gen AdMob SDK. Does RevenueCat support that?
Hi, currently the Web Customer Portal accessed via the management URL is always displayed in English. Is there any way to support additional languages, such as Spanish?For our use case, this is a critical requirement. Thank you.
Hi team,I’m using RevenueCat experiments to test pricing and offerings, and I’d love the ability for an assistant/automation tool to create experiments for me, not just read the results.Right now, an assistant can help analyze my data, compare offerings, and even help prepare the right test setup. But when it’s time to actually create the experiment, I still need to do it manually in the dashboard.It would be very helpful if the RevenueCat MCP/API could support creating and starting experiments, including choosing the control and test offerings, setting the audience, enrollment percentage, metrics, and notes.The ideal flow would be:Assistant analyzes the account and recommends an experiment. Assistant creates the experiment as a draft. I review it in RevenueCat. I approve/start it.This would reduce setup mistakes and make it much easier to run well-designed pricing and LTV experiments. Thanks!
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.