Get help with charts, customer timelines, and anything related to the RevenueCat dashboard.
Recently active
Hey RC Team, I use your charts mulitple times a day to track the progress of my business.One thing that would be a massive help to me would be to have a chart that looks at auto-renew status and gives the expected churn over the coming days. I think 30 days would be fine for my use case. I have created a number of custom charts and customer segments to track this to get a decent look at it but if there was a chart it would be super easy. It could even have the New MRR forecast as well as the auto-renew status of outstanding trials if you wanted to match the MRR Movement chart design but tbh that would be less important for us as we have a relatively good handle on forecasts for the new MRR.Happy to share screenshots and snippets if you guys wanted to take the idea forward. Best,Tom
Hi everyone,I wanted to start a quick conversation about the recent UI update to the subscription type badges—specifically the Renewal and New Sub tags.As developers, we stare at this dashboard daily. I noticed the recent changes to these tags, and to be honest, I think the older version was much better. With these new heavy pill-shaped backgrounds, they look exactly like clickable buttons rather than simple status indicators. This can be visually confusing and draws unnecessary attention away from the actual data.A cleaner, more minimalist approach—like what we had before, or just simple colored text without the solid backgrounds—makes the interface feel much more intuitive and native to our daily workflow.I've attached a screenshot showing exactly the ones I mean.Does anyone else feel the same way about this recent change? Would love to hear your thoughts!
Using React Native Paywalls UI ^10.7.1, on iOS, Text with {{ product.price }} is configured black for a selected package in dark mode, but appears white on device. Another package rendering the same {{ product.price }} text is not selected by default and behaves correctly. RevenueCat renderer shows both correctly.
It would be really helpful if the Paywall Editor supported max-width and max-height constraints for components and containers.Right now, responsive layouts can use options like Fill and Fit, but there isn't a way to allow an element to grow responsively while also capping how large it can become.For example, we'd like to be able to configure a component as:Width: FillMax Width: 500pxorHeight: FillMax Height: 600pxThis would let us create layouts that adapt to different phone and tablet sizes without having to use fixed dimensions or allowing components to become excessively large on larger screens.Essentially, we'd love CSS-style max-width and max-height behavior within the Paywall Editor.This would make building a single responsive paywall across different device sizes much easier.
It would be helpful if the Paywall Editor supported underlined text as a standard text styling option.Currently, we can configure properties such as font, size, weight, and color, but there doesn't appear to be an option to apply an underline to text.We have several designs where certain text, particularly links and interactive text, needs to be underlined for visual clarity and accessibility. Right now, we're unable to accurately reproduce those designs using RevenueCat Paywalls.Ideally, we'd like an Underline option alongside the existing text styling controls, similar to standard text-decoration: underline behavior.It would also be useful if underline styling could be applied to individual text spans rather than requiring the entire text component to be underlined.
We're seeing inconsistent styling behavior with a RevenueCat Paywall on Android, specifically on a Samsung Galaxy S22.The same paywall renders correctly when viewed through the RevenueCat Paywall Preview app, but when rendered within our own Android app build on the same device, there are styling differences.Specifically:The Annual package font color when selected is incorrect in our app build. The badge text size is also rendering at a different size than configured. Both styles render correctly in the RevenueCat Paywall Preview app. The issue is reproducible on a Samsung Galaxy S22.I've attached a video that toggles between the RevenueCat Paywall Preview app and our app on the same device to demonstrate the differences. You can see that the RevenueCat app renders the intended styling, while our implementation renders the selected Annual package text color and badge text sizing differently.Since the paywall configuration itself appears correctly in the RevenueCat app, we're trying to
I have removed and deleted all products associated to the virtual currency, and deleted all users. Yet it still won’t let me to delete virtual currency.The error message is: `The virtual currency has transactions and cannot be deleted.`
I downloaded the raw RevenueCat CSV exports for 2026 from my Google Cloud Storage bucket and wrote a custom script to parse all unique transactions year-to-date, filtering exactly by ownership_type.I discovered that family sharing might be causing massive distortion in my RevenueCat charts.In 2026, I had 100 unique iOS users register a transaction in RevenueCat. Here is how they break down:Direct Purchasers: 59 users (59%) Family Members: 41 users (41%)A staggering 41% of my iOS "subscribers" are Family Sharing members. These users generate exactly $0.00 in revenue, but if RevenueCat treats them as active subscribers in the charts and if the primary purchaser cancels, then the family members eventually churn out as well, generating multiple "churn" events for what was technically only one real lost customer.What led me to dig into this were the notifications I got on cancelled subs via the Revenuecat app on my phone and pc. I get bombarded with 5 notifications for a single user subscri
Hello,I have checked:1. The Bundle ID in App Store Connect2. Bundle ID given in RevenueCat3. Bundle ID in XcodeAll are same and case sensitivity check is also doneAll my agreements in the App Store Connect are activeThis is my 15th app in RevenueCat and this is the first time I have got this issue.I created the App in the App Store Connect in less than 24 hours ago, is that the case ?
I use AI editor primarly for paywalls, and i already had this active paywall which contained monthly and yearly plan for individual plan type and i added new packages in the offering for family plan type which are also monthly and yearly but the AI editor can’t see them no matter i do.
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.
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, 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, 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, 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
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
## 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
Every paywall I duplicate shows up in the dashboard but not in the RevenueCat mobile app for preview. Then when I go to actually deeplink into the paywall in my app, I get a fallback paywall. When I ask Rico about these duplicated paywalls he doesn’t know they exist (they don’t return in the API).Has anyone had this problem? Is there another way to duplicate easily?
I have`Purchases.shared.attribution.enableAdServicesAttributionTokenCollection()`which according to https://www.revenuecat.com/docs/integrations/attribution/apple-search-ads should give me the following fields:https://cln.sh/41P1JJ7THowever these are the fields that I see:https://cln.sh/dPCvFb77 I have used ASA Basic in the past, but have been using advanced for months.Is there anything else that I’m missing?
Hi there, for context I’ve already sent a support ticket regarding this issue but wanted to get better visibility here as it’s a pressing matter for us to be able to experiment in this manner. Our Setup:SDK: react-native-purchases 9.15.2 (iOS SDK 5.67.1)Platform: iOS (React Native / Expo)Placements: 9 placements defined in-app (e.g., x, x_upsell, y_upsell, etc.)Targeting Rule: One live catch-all rule (no audience conditions) that maps each placement to a specific control offering. The "for all other cases" fallback is set to No Offering, with default set for "when not using Placements."Experiment config: Paywall design experiment with all 9 placements specified (different offering only at the x placement, all others kept the same as the targeting rule). Fallback offerings A/B are set. Targeting by app_version >= X.X.X. Enrollment: 100%. The Problem:Experiments using new_and_existing enrollment mode do not actually apply to users, even when the user clearly matches the targeting cond
A title says, when trying to set height: Fill on Tabs component, it does not work. Seems like it’s not growing as expected. This bug is present on Tab component only, Stack works properly.
Why has there been no progress in adding local time zone to the charts? Im in UTC + 10 so the default timezone is worthless to me.It means I have to export data if I want to actually correlate it with other sources.Why has RevenueCat ignored this issue for over a year? Yet I see adds everyday bragging about how many features they are supposedly shipping...
Hi Together, I really love RevenueCat, but I sometimes run into limitations especially in the RevenueCat Paywall Editor.For example in Google Play Console (Android) I have 2 Subscriptions setup (3 Month and 1 year). For both subscriptions I have setup a Multiphase-Offer like this: 7 days Free-Trial 40% Percent Discount on the first Subscription-Cycle (3 Month, 1 Year) Then after Auto-Renew it is the normal price without discountNow the issue is that, the customer wants to display the Monthly-Price for (3 Month and 1 Year), which is possible with the normal variable without any active offers:Normal:product.price_per_month14.99$ But in the Paywall-Logic section the variable is not working like this:~{{ product.price_per_month }}~ **{{ product.offer_price_per_month }} per Month**which results in this~~14.99$~~ 14.99$ So I read the documentation and found out that you have too use the Secondary Offer for Multiphase-offer setups:https://www.revenuecat.com/docs/tools/paywalls/creating-paywal
Hello,I modified my paywall. I changed the link on the button at the bottom of the paywall and published it.However, when I open the app on my smartphone, the link is still the old one. I waited several hours. I tested it again, but still nothing. Your project ID: proj5223b537 The paywall name / offering it's attached to The button you changed (Terms → https://www.apple.com/legal/internet-services/itunes/dev/stdeula/) That the published version shows the correct link in the editor but the app serves the old one
Hi team,Great work on shipping the new charts for Paywalls 🚀For macOS we use RevenueCat paywalls, but can only see macOS data for chart type “Paywall Encounter”, not Paywall Conversion, Paywall LTV, or Paywall Abandonment.Questions:Is there a timeline for these chart types support macOS? If so, will these charts provide historical data for SDK 5.51.1+ users once they are functional?
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.