Discussion and help from anything related to RevenueCat.
Recently active
Hello,I can’t make my iaps listed for the first release because my iaps are not approved yet. However, iaps can only be approved by apple with the first release of app. So iaps are waiting for app’s first release while app’s first release waits for iaps approval.I can only see my iaps with mock storekit file. I want to fetch my products from revenuecat and test it locally. same problem asked here but my question is, how to see iaps at local phone before approval? WARN [RevenueCat] ⚠️ RevenueCat SDK is configured correctly, but contains some issues you might want to addressWarnings: • Your products are configured in RevenueCat but aren't approved in App Store Connect yet. This prevents users from making purchases in production. Please ensure all products are approved and available for sale in App Store Connect. • The offerings 'default' have configuration issues that may prevent users from seeing product options or making purchases.Product Issues: ⚠️ com.mamazingo.app.100stars (100
We are having issues where customers are attempting to cancel their subscription after their payment failed. But since the payment was attempted and failed, it continues to retry for up to 30 days, resulting in a very confusing customer experience: They get an email that their payment failed and subscription entered a grace period, then they get an email that they are expired since their payment continued to fail, and then much later the payment succeeds, even if they’ve tried to cancel. How can we prevent that? Is there a way to stop payment retries when the customer takes an action to cancel?
Hello RevenueCat Team,I am facing an issue where users in the United States (iOS/Android) and potentially other non-TRY regions are being shown the incorrect currency and pricing. Although the user is entering from the US, the app displays prices in Turkish Lira (₺).The Problem:Expected Behavior: US users should see prices in $ USD (e.g., $4.99/month).Current Behavior: US users are seeing ₺ TRY prices (e.g., ₺38.99/mo) which are likely pulled from the default Offering or used as a fallback price in my Dart/Flutter code.Technical Details and Observations:RevenueCat Offering Targeting Setup:Default Offering (default): Set up as the default for Turkey and other regions (likely containing TRY prices).Custom Rule: I have defined a specific targeting rule for the US and UK: IF Country = US, UK -> Show Offering for US, UK.Suspected Issue (Fallback): I suspect that the user in the US is failing to receive the specific "Offering for US, UK" and is instead falling back to the "defau
I’m using .presentPaywall() and I tried to use RevenueCatUI.Paywall component, but it’s always on this “Sheet View”, with that weird margin. How can I fix it? Also, the RevenueCatUI.Paywall component is crashing my app on Android.
I have an appointment scheduling app for Android and iOS.I’m thinking about implementing a virtual currency to allow my customers to purchase SMS credits that they can use to send automated SMS reminders to their clients who are scheduling appointments. And I’ve asked the ChatGPT if I’m breaking some kind of rules regarding that implementation. I’ve received an answer:From App Store Review Guidelines §3.1.3(b) – Goods and Services Outside of the App:"If your app enables people to purchase physical goods or services that will be consumed outside of the app, you must use methods other than in-app purchase to collect those payments."Does that mean I cannot use in-app purchase to sell these SMS credits? What’s the best workaround?Also, AI gave me this answer, is it true?No, you cannot sell SMS credits through RevenueCat (or Apple/Google in-app purchases), because SMS credits represent a real-world service, not a digital in-app feature.However, you can use RevenueCat’s new virtual currency
Is anyone getting random RevenueCat errors during App Store review? My app has spent the last week or so going back and forth with the App Store review team and getting rejected for various reasons. I can see that during this process, they have successfully been able to subscribe to my app.Now, at the final hurdle, they suddenly get an “Error 23: There is an issue with your configuration” error when loading the paywall. This worked perfectly fine all week, and I can’t recreate this error. Anyone having similar bouts of random errors?
Is there any way to achieve this?in documentation it states that default proration mode is WITHOUT_PRORATION, is it stays the same in case of using paywall builder? even in case of downgrading to less expensive tier?
i am not using purchases_ui_flutter anymore i had it and then i deleted it but in the google console i am getting this crash report on the version that doesn’t include purchases_ui_flutter is this crash has any connection with the purchases_ui_flutter package or there is another reason for this crash.Exception java.util.ConcurrentModificationException: at java.util.LinkedHashMap$LinkedHashIterator.nextNode (LinkedHashMap.java:1061) at java.util.LinkedHashMap$LinkedKeyIterator.next (LinkedHashMap.java:1084) at com.revenuecat.purchases.paywalls.FontLoader.addFileToCache (FontLoader.kt:119) at com.revenuecat.purchases.paywalls.FontLoader.access$getFontInfosForHash$p (FontLoader.kt:27) at com.revenuecat.purchases.paywalls.FontLoader.access$addFileToCache (FontLoader.kt:27) at com.revenuecat.purchases.paywalls.FontLoader$startFontDownload$1.invokeSuspend (FontLoader.kt:90) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33) at kotlinx.coroutines.Dispat
Getting a NetworkError sometimes on `Purchases.sharedInstance.restorePurchases` (KMP SDK).Minor bug report: `underlyingErrorMessage` seems to be a result of parsing HTML as JSON.# java.lang.Throwable: PurchasesError(code=NetworkError, underlyingErrorMessage=Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject, message='Error performing request.')## Issue SummaryPurchase History Network Error: Failed Device ID Linking**What's wrong:** Failed to link device ID with purchases. **NetworkError** during purchase history retrieval. Internal error code 12.**In the trace:** App entered foreground and resumed normally. **Network available** and capable.**Possible cause:** A **transient server-side issue** with the purchase history API may have caused the network error.
Is there a way to strictly see my MRR / ARR of exclusively those subscriptions that are active and uncancelled? I don’d understand why inactive subscriptions would be included in a recurring number, if they were effectively a one time payment.
I am using Bubble.io with Natively wrapper, following the guides and youtube videos to setup everything, however it is not working, nothing happens after clicking the purchase button, the in app purchase pop up didn’t even show, nothing happened. I wonder if the SDK installation do anything with this? do i have to install the sdk first, but bubble is a no-code platform, or natively did that for me already? any natively users can help me out?
Hi everyone! I’m new here and still learning, so please be patient if I say something silly 😅I’m using Expo Go (React Native) in my app, and I’m implementing RevenueCat.I’m currently using the Test Store to simulate subscriptions.In my case, users can upgrade or downgrade between plans.The only difference between the plans is the cloud storage limit, which is controlled by the active product_id.In my app, users can only have one active subscription at a time. Current setup in RevenueCatOfferings Created one offering called default Packages Inside this offering, I created “Custom” packages since all of my plans are monthly (the package only allows one monthly product per offering, so I used “Custom”) Products I have subscriptions imported from Google Play And test subscriptions configured in the Test Store with similar product_ids Entitlements I have only one entitlement called storage_access In my Expo appI list all the packages from the current offering and let the user pick one to
I’ve added a 50% off offer on my yearly-autorenewing subscription in revenuecat which you can see in the image below. It’s called “mente-argentina”.This is for people who’ve never subscribed to my app. I’ve signed into my app with a fresh account, that’s never made any subscriptions to test this.This is a react native app and I’m using the react-native-purchases package.I’m calling the following function to get an object with all of my subscriptions/offerings in it:const offerings = await Purchases.getOfferings();When logging all pieces of this object, I can’t see the mente-argentina offering anywhere.I thought maybe I should try to create another product in the revenuecat ui but there I’m unable to get revenuecat to find the offering by id in the playstore, so I’m thinking that’s not the case.Is there anything I need to do to sync my google play offers and revenuecat? And how do I get these offers to show up in my code so I can show them to the user.
Hi RevenueCat team,We’re currently using the RevenueCat scheduled data export and receiving the daily transactions table to our BigQuery project.Our goal is to reproduce the Trial Conversion report (with additional refund metrics) in our internal BI tool, so that we can visualize cohort-based trial → conversion performance over time.I’d like to confirm a few points and get your guidance on the best approach: How should we correctly identify Trial Started, Converted, Pending, Abandoned, refunds or cancellations so they align with the dashboard metrics in the RevenueCat UI? Are there any recommended SQL examples for reproducing the Trial Conversion chart logic using only the transactions export (without the customers export)? Our goal is to use RevenueCat data within our internal analytics tool. We want to integrate the data we receive (such as the transactions export) into our existing reporting environment and monitor it from there.Could you please guide us on the best way to do this
hello. im building the app mostly in flutterflow and im hitting the wall . offers are not showing no matter what i do . it was setup about 10 days ago so they should show .What’s implemented FlutterFlow → RevenueCat integration enabled. Android Public SDK key (goog_…) set. iOS Public SDK key (appl_…) set (for later). “Load data after App Launch” enabled. RevenueCat project config. Offering default published. Package $rc_monthly attached to Android product premium_monthly:monthly and iOS product. Entitlement premium mapped to that package. Hosted paywall published (but we’re using purchasePackage). Google Play Console. App id: com.klikin.app (matches RC app + build). Subscription premium_monthly with base plan monthly is Active/Published. Countries: ~173 (includes Switzerland). Payments profile: Active. Test track: Closed/Internal; app installed via testing link (not search). Tester (my Google account): added and accepted.
Hi RevenueCat team,I accidentally deleted my production project while cleaning up old projects. 😭 I've already contacted support but haven't received a response yet. CURRENT SITUATION:- Created a new project with new API Key- App is configured correctly (same Bundle ID, products, shared secret)- I have 10 paying customers with ACTIVE subscriptions in their Apple accounts- Customer Center's "Restore Purchase" button is NOT working- Tested on a real device with my own active subscription- restore failsCRITICAL ISSUE:When I test restore purchases using Customer Center, it doesn't find the previous subscription even though:✅ The subscription is active in iPhone Settings > Subscriptions✅ Same Apple ID✅ Same device✅ Products configured with exact same IDsQUESTIONS:1. Is there ANY way to recover a deleted production project? (urgent!)2. If not recoverable, why isn't restore working between old project and new project? The receipts should still be on the device.3. Will my customers lose ac
The documentation states that the `rc_subscription_status` property should be set as a user property with each RC event that is sent to Posthog. This is not happening in our integration.We do receive RC events, and see the property there as an event property, but the related users do not have the latest subscription status set as a user property.Here’s a link to the relevant docs:https://www.revenuecat.com/docs/integrations/third-party-integrations/posthogFrom this page:Whenever RevenueCat sends an event to PostHog, we'll update the rc_subscription_status user attribute with any applicable changes, using one of the following values: [...]
When I try to fill my badge with a text it doesn’t appear, the badge stays empty and I tried to delete and recreate it, tried many others things as well. Nothing seems to work, what is wrong with it?
I’m trying to build a ‘tipping’ system like Youtube where users can tip during a livestream. The tip value will determine different factors like how long the message gets pinned, or what colors and emojis are used to display the message. I wanted to attach some metadata to my products in Revenuecat to do this, but it seems like that isn’t allowed.Is there any way of achieving this via Revenuecat without implementing any logic in my backend system?
I have tried searching, but I wasn’t able to find a clear answer.I want to have a custom experience for a feature available within our web app only: Pro & Plus plans, each with monthly & yearly time periods. So far I have:added my products to the product-catalog: widget_annual_pro widget_annual_plus widget_monthly_pro widget_monthly_plus Then I have created 2 new entitlements: widget_pro widget_plus Then I try to create an offering, I successfully get the first “Monthly” product, “Plus”. but I cannot select more than 1 “Monthly” time period to add “Pro”: So, how do I create the offering?
Hello,While reviewing my app analytics, I noticed that some user purchases failed with the error code “paymentPendingError.”I couldn’t find much documentation or discussion about this specific error online, so I have a few questions: Is this error caused by something on my app’s side or on the user’s side? If it’s on my side, what steps should I take to resolve or prevent it? If it’s on the user’s side, how should I guide them? Is there anything specific I can suggest (e.g., retrying, restoring purchases, etc.)? Any insights or guidance would be greatly appreciated.Thanks in advance!
## SummaryOn iPhone (portrait), RevenueCat's `PaywallView` renders a wide/tablet layout (right-side truncation, overflow) for our custom paywalls. The same device renders your default template paywall correctly. This points to a sizing/constraints issue in the custom paywall runtime or size-class detection.## Environment- RC SDKs: - purchases_flutter: 9.8.0 (also reproduced on 8.10.6) - purchases_ui_flutter: 9.8.0 (also reproduced on 8.10.6) ## Expected vs Actual- Expected: On iPhone portrait, `PaywallView` should use a compact/phone layout and fully respect the parent’s width; no horizontal overflow.- Actual: The paywall renders a wide/tablet layout, appears left-aligned, extends past the right edge, truncating headline text and CTA.## Minimal Repro (no app-specific wrappers)We clamp the width to a phone-safe max and center it. The behavior persists even with a very small max width and no scroll views around it.```dart// Inside a page bodyreturn SafeArea( child: LayoutBuilder( b
I previously implemented the subscription feature using SwiftyStoreKit, and all receipts were processed locally only. Recently, I applied RevenueCat and implemented a custom paywall. The implementation is complete, and I am currently testing it in TestFlight.In the TestFlight environment, I was able to restore purchases from my actual App Store account with the old setup, but with the RevenueCat SDK, restoration does not work. Is this the expected behavior? I am worried that existing users may not be able to restore their purchases when the app is released on the App Store.Purchases.shared.syncPurchases() For receipt migration, I executed the above code once to synchronize existing purchase history. I understand that server-side synchronization of previous purchases is recommended, but since there is no existing backend history, I cannot use that method. In this state, if I release the app on the App Store, will existing users be able to safely restore their past purchases?
Hi, not the first time I launch an app with RC, but first time I got Billing Errors, and in a too high number! People get the 3-day free trial, but then many of them end up with a Billing Error. How to explain this? 100% users are in the US.
Hi, I’m facing an issue in my React Native app when displaying the paywall in production using <RevenueCatUI.Paywall />This started happening randomly since yesterday. Didn’t changed anything. After that, the UI doesn’t show up $rc_annual, and only $rc_monthly . In Paywall Dashboard it shows me correct UI with both rc_annual and $rc_monthly also works fine in Sandbox mode but in production it shows me only rc_monthly Earlier it used to work fine in production. How can I properly link my new annual base plan so that it appears in the subscription Offering and resolves this error?Thanks in advance!
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.