Get help with your SDK implementation.
Recently active
Hi, I’ve been using Paywall with Flutter, and it’s been great so far, but it doesn’t handle subscription upgrades/downgrades for Google Play, which is a major issue.Without this essential feature, Paywall becomes almost unusable for managing multiple subscriptions on the Play Store.Are there any solutions to make RevenueCat Paywall work for upgrades/downgrades with Google subscriptions in Flutter?
I’ve uploaded a new version of my app with sdk version 9.5.0 and I’m seeing this error in production, did anyone encounter this?here is the stack trace: com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitGetProducts$2$2.invoke (CoroutinesExtensionsCommon.kt:146) com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitGetProducts$2$2.invoke (CoroutinesExtensionsCommon.kt:141) com.revenuecat.purchases.ListenerConversionsCommonKt$getStoreProductsCallback$1.onError (ListenerConversionsCommon.kt:36) com.revenuecat.purchases.PurchasesOrchestrator$getProducts$1.onError (PurchasesOrchestrator.kt:517) com.revenuecat.purchases.PurchasesOrchestrator$getProductsOfTypes$1$2$1.invoke (PurchasesOrchestrator.kt:1128) com.revenuecat.purchases.PurchasesOrchestrator$getProductsOfTypes$1$2$1.invoke (PurchasesOrchestrator.kt:1126) com.revenuecat.purchases.PurchasesOrchestrator.dispatch$lambda$63 (PurchasesOrchestrator.kt:1158) com.revenuecat.purchases.PurchasesOrchestrator.$r8$lambda$vfpu2r8Y3li
I currently use API v8, there are lifetime products in my app that were incorrectly configured as “consumable” in the RevenueCat dashboard (I fixed that to be “non-consumable” but many users have already purchased these before). I understand that in API v9 (which uses Play Billing Library 8), I can’t restore consumed products. Does that mean that if I upgrade then these products will be non-restorable?In other words, does fixing the products from “consumable” to be “non-consumable” solve the issue for all purchases, or does it apply only to new purchases after the fix?
I have created a Paywall with some icons as you can see in the screenshot attached. But when I try to open the paywall in my app, or even in the RevenueCat app, the icons do not appear. iOS 26RevenueCat SDK 5.39.0
Hi.. I’ve got an old ObjC project that uses RevCat. I don’t rely on the system localization but allow the user to choose the language to override it.. so I want to also override the paywall localization. I found another post that says this is possible in ios: Purchases.shared.overridePreferredUILocale("es")My app is ObjC and generally I can call any func with objC but this one doesn't seem to be found.. trying:[[RCPurchases sharedPurchases] overridePreferredUILocale:@”es”];But that’s not found.. is there a way? Or would I need to switch over and have some swift in my project (I haven’t really done that, I know it’s possible.. just trying to find the easiest solution at the moment) Thanks!D
Hi,In my app, users can manually select their preferred language, since many of them don’t change their phone’s system language to match their native one.Because of this, the app language is controlled through my own state management system rather than relying on the device’s localization settings.The problem is that I can’t find a way to localize the paywall to match this internal language setting.Am I missing something here, or does this mean I can’t localize the paywall at all?This feature is essential for us, and it could determine whether we continue with RevenueCat or need to explore alternatives.Please help!
Error loading subscriptions: PlatformException(23, There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).More information: https://rev.cat/why-are-offerings-empty, {code: 23, readableErrorCode:CONFIGURATION_ERROR, message: There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).More information: https://rev.cat/why-are-offerings-empty, readable_error_code:CONFIGURATION_ERROR, underlying ErrorMessage:
I’m integrating Customer Center into my app (with purchases-kmp) and the Customer Center Composable always shows a blank screen. Any ideas on what could be wrong? https://drive.google.com/file/d/1YT3z5aytElJVvgDZvJHN_VwCV-aRu7X8/view?usp=sharing
We have multiple paywalls configured in RevenueCat and would like to implement dynamic paywall decisioning based on the user’s attributes or behavior.What is the recommended approach to determine and show the correct paywall for each user?Is there a way to manage or customize which paywall is presented at runtime using RevenueCat’s SDK or dashboard?
Getting a bunch of these in my logs12.1.0 - [FirebaseAnalytics][I-ACS023141] Purchase is a duplicate and will not be reported. Product ID: test3Is this from RevenueCat? I’m not sending this data to analytics. Thanks!
I tested successfully purchasing a subscription : I downloaded the app from Play Store, and purchase it, everything is fine.Is it possible to do the same test when deploying from Android Studio or installing manually the apk ? When I try, I get an error “This version of the application is not configured for billing through Google Play”.Both tests are done on an emulator. Thank you
Hello RevenueCat community,We would like to open a discussion around the initialization behavior of the Amazon Appstore SDK when used with RevenueCat, particularly on Fire TV devices and low-spec kindle tablets. EnvironmentReact Native Purchases: react-native-purchases: 8.11.10 RevenueCat Amazon Store: purchases-store-amazon:8.22.0 Amazon Appstore SDK: com.amazon.device:amazon-appstore-sdk:3.0.5Devices tested:Fire TV Stick (Fire OS 5.2.9.5) Kindle Fire 7, 7th generation (Fire OS 5.7.1.0) Issue observed When configuring RevenueCat withPurchases.configure({ apiKey: REVENUE_CAT_API_KEY_AMAZON, useAmazon: true })we sometimes experience very long initialization times (up to 30–60 seconds). This affects the ability to fetch offerings at app startup.Errors observed in React Native:[RevenueCat] Error obtaining storefront in Amazon: PurchasesError( code=UnknownError, underlyingErrorMessage=Timeout error trying to get Amazon user data., message='Unknown error.')[RevenueCat] 😿‼️ PurchasesE
Hi Everyone,I’m trying to give an existing subscriber a free month using RevenueCat’s “Google Play: Defer a Subscription” API (https://www.revenuecat.com/docs/api-v1#tag/transactions/operation/defer-a-google-subscription), but I keep getting "Subscription not found for subscriber" in the response.I’m posting to this URL: https://api.revenuecat.com/v1/subscribers/{app_user_id}/subscriptions/{product_identifier}/deferI copied the product ID from the "product_id" field of the event data from when the user purchased the subscription, to make sure I was using the correct value. I have tried it with the product ID as both plain text and URL-encoded. The user ID contains only letters and numbers, so URI-encoding makes no difference there.My POST body looks like this:{ "expiry_time_ms": 1762620360000}I can’t figure out what I’m doing wrong. Does anyone have any insight?
import SwiftUIimport RevenueCatimport RevenueCatUIstruct BuyPremiumInfoOrButton: View { @EnvironmentObject var store: Store @State private var displayPaywall = false var body: some View { Group { switch store.premiumState { case .notLoaded: Text("Loading...") case .hasPremium: Label("You have premium", systemImage: "crown") case .doesNotHavePremium: Button { displayPaywall.toggle() } label: { Label("Upgrade to Premium", systemImage: "crown") } case .error: Text("There was an error loading your premium status") } }.sheet(isPresented: self.$displayPaywall, onDismiss: { store.refresh() }) { PaywallView() } }}The above is my code. Its just using the PaywallView() from the RevenueCatUI. But this one seems to not dismiss the sheet that the
We noticed a weird issue that is happening to some users. When we present the paywall we are using the loaded offerings and if they are not loaded we wait for them to be refreshed. In our code we first fetch customerInfo and then the offerings. By looking at the logs from one of our users call to the customerInfo() never seems to end - it doesn’t return nor throw an error.public func refreshData() async throws { logger.log("Refresh data") try await refreshCustomerInfo() try await refreshProducts()}inside the refreshCustomerInfo() we are logging everything but only Begin refreshing customer info seems to be included in the logs.public func refreshCustomerInfo() async throws { logger.log("Begin refreshing customer info") do { customerInfo = try await purchases.customerInfo() logger.log("Refreshing customer info succeeded. Bought: \(purchased)") } catch let error { logger.error("Refreshing customer info failed", error) throw PurchaseError(erro
I’ve created a paywall with a “redeem code” button. It has a “Navigate to” “Offer code redemption” action. However, the button doesn’t show up in my app.I’ve added all translations. When adding a plain text label with the same string it shows just fine.Anything I’m missing here?
Hi, I am trying to finalise testing my app on TestFlight before submitting, however, my paywall keeps loading non stop after user signs up. I tried the same flow with local development and everything works as expected. What am I doing wrong here? I am using Expo btw.
Hi,I have a mobile app using the RevenueCat SDK for in-app payments. We recently developed a WebApp where users will be able to sign up and purchase a subscription directly from the web using Web Purchase Links.I’d like to clarify one point: to avoid using Redemption Links, I understand that I need to provide an app_user_id. What’s the best way to create a new RevenueCat customer with an app_user_id directly from my WebApp? Is there an API endpoint or recommended approach for this flow?Thanks for your support!
The latest version of cordova-plugin-purchases 7.x.x includes an upgrade to “Google Play Billing Library 8”.Is this the same library described in the plugin’s home page stating that “Billing Client v7 will be the latest version this SDK will ever support“ and that Google will not allow changes after August 31st 2026.I’m trying to figure out is Google Play Billing Library 8 in the plugin’s release 7.0.0 is the same thing as the Warning message calls “Billing Client” on the plugin’s home page. Thanks
I’m using the flutter SDK.I have a simple screen that loads the current offering, iterates over each availablePackage, and outputs some details about the package.In RevenueCat, the offering has 6 packages, and each package has a subscription product. The products are for a Web Billing provider, and each is clearly configured as a subscription (the billing cycle shows as “Yearly” or “Monthly” on the product page).However, each of the packages has a “nonRecurring” recurrenceMode (via package.storeProduct.defaultOption.fullPricePhase). Shouldn’t that be “infiniteRecurring”?Code for the flutter widget below:import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';import 'package:purchases_flutter/purchases_flutter.dart';import 'package:pz_common/common/widgets/async_value_widget.dart';import 'package:pz_common/localization/string_hardcoded.dart';import 'package:pz_common/subscription/application/subscription_service.dart';class SubscriptionDebugScreen
Hello guys I recently installed revenuecat for capacitor to create in app purchase model to get the approval for apple with the subscription topic. both of my products are in the status Waiting for Review and still can’t see into simulator o xcode the modal.. can someone help me or have any example that products in this state can be tested in xcode or simulator?
Hi all,I’m testing a retention promotional offer configured in App Store Connect and mapped in RevenueCat Customer Center (React Native SDK). When I go through the cancel subscription flow, Customer Center correctly presents the promotional offer, and I see the native price sheet.After confirming with Face ID, though, the purchase fails and I get the system alert:“Unable to Purchase. Contact the developer.”It looks like this happens right after authentication. From what I understand this might be related to promotional offer signing or configuration.Setup details: RN SDKs: react-native-purchases + react-native-purchases-ui (current versions) Customer Center is showing the offer correctly Promo offer is active in ASC, mapped to the right subscription in RC Using an account with a Live Subscription in product env (Live App Store) Has anyone else run into this error when redeeming a promo from Customer Center?Thanks!
Hello,I’m trying to integrate Revenuecat Paywall into my Flutter app and getting an error like below :Xcode build done. 60,5sFailed to build iOS appCould not build the precompiled application for the device.Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:47 Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:762 Error launching application on Mustafa1. Exited (1). On line 116:47 in PaywallData+Default.swift is : static let defaultTemplateBaseURL = Bundle.module.resourceURL ?? Bundle.module.bundleURLSo I changed every module to main and it worked. But I know this is temporarily solution. What should I do or what I’m missing ?
Im getting this error:ERROR: 😿‼️ RevenueCat SDK Configuration is not validYour app's Bundle ID 'com.yh.que.watchapp' doesn't match the RevenueCat configuration 'com.yh.que'. This will cause the SDK to not show any products and won't allow users to make purchases. Please update your Bundle ID in either your app or the RevenueCat website to match. In the app store my bundle Id is: com.yh.quemy app bundle id: com.yh.quewatchos: com.yh.que.watchapp if I change the App Bundle ID in the RevenueCat dashboard to “com.yh.que.watchapp” it works however but “In app purchase key configuration” will throw error saying the bundle error doesn’t exist in app store connect. Has anyone faced this problem?Thanks
Hi all, i’m very new to revenuecat paywall UI. i have implemented it succesfully in my flutter app for android, but i’m failing to use these listeners. onPurchaseStarted onPurchaseCompleted onPurchaseError onRestoreCompleted onRestoreError onDismissWhere do i listen for them? because when i click the restore button on the paywall ui, not is happening.
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.