Discussion and help from anything related to RevenueCat.
Recently active
Hello 👋, In our app we show the a 30 day badge next to the offer we show to the user. We also keep that badge after the user has bought the subscription. The user is now allowed to subscribe a second time, so we found ourselves in this situation: - if a user never subscribed, show the period the offer object has, np here- if they subscribed to this offer, use the expiration date minus the last purchase date rounded to the day to show the 30 days. Our concern is now if a user cancels their subscription before the trial ends then resubscribe, will the expiration time and more importantly, the latest purchase date change? I'm not sure a user can purchase a subscription if he's on it's free trial, even if canceled. Didn't find info on this so I'd appreciate any insight that you have. Thank you.
Hi,In Google Play Store I have setup a base plan (annual auto renew), with five offers under it (launch offer, black Friday offer, Christmas offer, etc).They are all inactive until they are needed, then I will active them and deactivate others (in Apple App store these will have dates).But I don't know the best way to map these to RevenueCat? any ideas? (I am happy to restructure plans/offers in Google if needed).p.s. my system shows different media (audio/video) dependant on the current offer, so will need to know what the offer_id is.
Hi RevenueCat team!I know this issue has about 63 😵 questions posted by a community and they have different reasons, so I guess you could be biased not wanting to solve this annoying bug. However it affects to many users and I just can’t let it live, so I’m seeking for your support. The background:I’m using the latest version your Flutter package `purchases_flutter: ^4.10.0`. I’ve been seeing this issue since upgrade to 4.x.The issue appears only for some android users, the app has about 8000 DAU, and in Crashlitycs there are about 200 daily errors related to that issue. For the rest of android users it seems to work fine. I also never were able to reproduce it internally. The devices distribution is the following:72% - samsung 5% - HUAWEI 5% - TECNO MOBILE LIMITED 3% - Sony 15% - Other (11) The exception is the following:flutter_error_exceptionPlatformException(23, There is an issue with your configuration. Check the underlying error for more details., {code: 23, message: There is
This video was working last night but now it is failing to play with an error message. I’ve checked this on multiple browsers and devices with the same results:Navigate to https://www.revenuecat.com/docs/getting-started/installation/ios Scroll down to the Installation section on this page. Try to play the Youtube video. Results: The following error is displayed:An error occurred. Please try again later. (Playback ID: tvZ5ygnslnlNRP0l) I wanted to report this incase others are encountering the same issue. It’s a great resource for getting started. Thanks!
Hi, recently in one of our apps the integration between RevenueCat and OneSignal is failing, im aware of the changes in the API as stated here https://www.revenuecat.com/docs/integrations/third-party-integrations/onesignal#11-user-centric-api-versions-of-onesignal-110-and-abovewe have two types of problems first of all some of the request send empty bodies and some others return {"errors":[{"title":"No subscription with alias We have this integration working in two apps with exactly the same implementation, one is working fine and the other is always failing.as of today which type should we use with flutter and why one is failing?Here is a little snippet of the integration: final oneSignalUserId = OneSignal.User.pushSubscription.id; OneSignal.login(revenueCatUserId); OneSignal.User.addAliases(<String, dynamic>{ 'revenuecat_id': revenueCatUserId, }); await _corePurchases.setOneSignalId(oneSignalUserId!)Thanks.
I just made my first iOS sandbox purchase using the RevenueCat Flutter SDK. Then I went to my dashboard and could not find the fake purchase. I looked at the docs and it claims I need to toggle my view sandbox data ON. The issue is that this toggle is disabled. When I hover I get the “not-allowed” cursor. Why would this toggle ever be disabled?
I have the same problem as this post: but im using react native sdk, after completing the purchase onDismiss is called
I am facing an issue with my Flutter app. I have a subscription that includes two products: an annual and a monthly option. Both products are correctly set up in Apple and RevenueCat. However, in my Flutter App when I fetch the offerings the annual product appears, while the monthly product shows up as null. Why is this happening?
Hi all.we have the issue of very high numbers of new customers – numbers that we don’t see in App Store nor Mixpanel. Last year we tried to solve this issue with RC support, but failed. We did make some changes around how we call logout method but it didn’t help. Now, we’re hoping maybe someone from the community has/had the same/similar issue and could help us. We already saw that there are a couple of posts around the topic: https://community.revenuecat.com/dashboard-tools-52/how-to-reconcile-the-new-customers-data-1387 https://community.revenuecat.com/dashboard-tools-52/double-new-customers-since-july-15-1843 The answers on them didn’t help us. Our iOS setup is as follows:We call configure in didFinishLaunchingWithOptions with no appUserId Until user logs is we rely on RC anonymousID Once user logs in we call login with our userID It’s also possible that user buys a subscription without being logged in, and in that case we also call login but with yet another id A user can have
I’m trying to generate an In-App Purchase Key on App Store Connect as that’s a mandatory step in the set up process for iOS apps. However, App store connect won’t let me, and also won’t tell me what’s wrong. When I try to generate a key, I get a “error, please try again later” error and then immediately redirected to the home page. In the chrome devtools console, I see a 403 forbidden error. Wtf?
I upload the P8 key file from App Store Connect to the revenuecat with my Key ID and Issuer ID. Everything is correct but it still says that “Credentials are not configured yet” what should I do more to get my credentials validated ?
In the Customer Info (https://www.revenuecat.com/docs/api-v1#tag/customer_info_model) `subscriber` field, there is a dictionary of identifiers to subscriptions. It looks like the identifier is the product identifier from the respective stores. What happens if the same identifier is present on the App Store and Google Play?
During the Apple review process, the reviewer encountered an "Error 23" message indicating a configuration issue. This has happened twice now, even though I haven’t made any changes to my RevenueCat setup or code since my last successful reviews. In the previous reviews, the reviewer was able to complete the subscription process successfully but rejected the app for an unrelated reason. Now, when I test the subscription flow, everything still works perfectly on my end, so I’m unsure why it’s failing for them.Do you have any insights on what might be causing this issue or how I can resolve it? Could it be related to Apple's sandbox environment, or is there something specific I need to check or adjust in my RevenueCat configuration(even though it worked in the past and is still working)? Would uploading a new build and resubmitting help? I’ve seen others try this approach, but I’d appreciate your advice.Thanks for your help!
Hello,I’ve been looking on already posted questions but didn’t found the answer about that.I’ve been sending some promo codes for my Android and Apple application, the Apple promo code redeemed are marked as TRIAL in my console, but the Google Play ones are marked as a regular purchase with the real price while in the Google Play Console it’s marked with a 0.00€ revenue. My issue here is that I suppose that it’s counted in the MMR (and thus i’ll pay 1% on the revenues if i reach the 2500$ threshold) while it doesn’t make me earn money, so in fact i’m losing money by giving promo code 😫 ? Or maybe the real MMR is recomputed after with the real transactions amount ? I don’t know. Thanks for the clarification :)
Is there a way to add a video to the existing fullscreen paywall in place of the image?
Within a local Xcode testing environment we sometimes run in to the following error (which is received from RevenueCat):Error Domain=RCBackendErrorDomain Code=7638 "There is another request in flight trying to perform the same action."This is the error that we receive back when we try and make a purchase (within the following code block): func purchase(package: Package, completion: @escaping (InAppPurchaseResult) -> Void) { purchasePackage(package) { _, purchaserInfo, error, userCanceled in if userCanceled { completion(.userCancelled) } else if let error = error { completion(.failure(error)) print(error) print(error.localizedDescription) } else if purchaserInfo?.entitlements.all["unlocked"]?.isActive == true { completion(.success) } else { // According to RevenueCat doc it should never happen } } }Even though we receive
Hi All,I have more than 15k active user and only handful of people having this issue. The customer created the account but we are unable to see his transaction history, upon further inspection we found out that the user is already paying for the subscription, it’s just RC don’t recognize it.After following the below doc, I realize that we might have to add restore Purchase functionality to overcome this issue. After testing in sandbox we got a weird issue which says :-“😿‼️ There is already another active subscriber using the same receipt.” which is coming from the API with endpoint “/v1/receipts”. NOTE:- Both the sandbox and app account are new so there is no way that the sandbox had an previous purchase history. Now I am a bit confused and really want to sync everything for these users, I am looking forward for a saluting from this community. Thanks & Regards Mayank Sharma
Hi, I thought the only values you see for the period_type field are: TRIAL, NORMAL, PROMOTIONAL. However, see attached. I see a PREPAID value? In the attached picture, the product is a recurring subscription (as opposed to a prepaid/non-recurring product). So the period_type value doesn’t seem to match.Is this a bug in RC? If not, what does this period_type mean? iOS subs continue to use the NORMAL period_type, so am I expected to field different period types, depending on the store? Thanks, Toby
When I try to sync purchases on one of my devices, I get the following error:Error syncing purchases StoreTransaction(orderId=null, productIds=[plus_upgrade], type=INAPP, purchaseTime=1641997886514, purchaseToken=<redacted>, purchaseState=UNSPECIFIED_STATE, isAutoRenewing=null, signature=<redacted>, originalJson={"productId":"plus_upgrade","purchaseToken":"<redacted>","purchaseTime":1641997886514,"quantity":1,"developerPayload":null}, presentedOfferingIdentifier=null, storeUserID=null, purchaseType=GOOGLE_RESTORED_PURCHASE, marketplace=null, subscriptionOptionId=null, replacementMode=null). Error: PurchasesError(code=UnknownBackendError, underlyingErrorMessage=Backend Code: 7651 - The payment for this non-subscription product is not complete., message='There was an unknown backend error.')On the Play Console, I see that this in-app purchase has been refunded and it has a proper order ID.Any idea?
Hey RevenueCat Community, we are currently migrating from Glassfy and are also using the Paywalls feature. What I am missing here from Glassfy is the customisability in Paywalls and not being dependent on Templates as much. As you can see in the Screenshot, there are more values to adjust, variable Button count, Image Carousel, Paddings, Sizes, Margins etc. What I am proposing are similar features in the RevenueCat Paywalls feature. For example:Styling like in CSS: Sizes, Paddings, Margins, Borders (Radiuses)Flexible positioning and amount of ElementsWe are aware that it is aways Possible to natively create a Paywall, but here the huge use-case is that its a no-code solution, so customers can easily adapt and implement Paywalls themselves.What do you think of it and what are your experiences migrating from Glassfy?
Hi, I’ve been using Paywall with React Native, 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 React Native?
I am using Flutter, fyi.How do I check that the user is logged into their google account (and Play Services) on their device, so that I don’t get an error when I show the paywall?
Hi all,I’m testing the Scheduled Data Export integration but I don’t understand one thing. So there’s this option to only include new and updated transaction records, but how do I know which records are new and which are updated? And for the latter, how do I know which record it replaces? Last question, is there a way to get user events history from api?
offering] DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["pinqin_10_skill_coins"][purchases] INFO: 💰 Purchasing Product 'pinqin_10_skill_coins'[error] ERROR: 😿‼️ The operation is already in progress for this product.[purchases] ERROR: 💰 Product purchase for 'pinqin_10_skill_coins' failed with error: Error Domain=RevenueCat.ErrorCode Code=15 "The operation is already in progress for this product." UserInfo={NSLocalizedDescription=The operation is already in progress for this product., readable_error_code=OPERATION_ALREADY_IN_PROGRESS_FOR_PRODUCT_ERROR, source_function=addPurchaseCompletedCallback(productIdentifier:completion:), source_file=RevenueCat/PurchasesOrchestrator.swift:986}along with this whenever I am restarting the project , it works fine without this error.
Hi RevenueCat Support,I'm encountering an issue with my app, which was recently released on the App Store. When making a conversion via a sandbox account, the entitlements are not activating, and the CustomerInfo object consistently shows no active entitlements. Here’s an excerpt from the debug log:[DEBUG] Transaction: Optional(<StoreTransaction: identifier="2000000720835399" product="XXXMONTHLY" date="2024-09-20 20:48:21 +0000" quantity=1 >) [DEBUG] PurchaserInfo: Optional(<CustomerInfo: originalApplicationVersion=1.0, latestExpirationDate=Optional(2024-09-20 20:53:21 +0000), activeEntitlements=[:], activeSubscriptions=[:], nonSubscriptions=[], requestDate=2024-09-20 20:53:49 +0000, firstSeen=2024-09-20 20:51:57 +0000, originalAppUserId=EF36029C-E740-4B3C-B14C-1E179B37FD8D, entitlements=["PRO": "<EntitlementInfo: \"\nidentifier=PRO,\nisActive=false,\nwillRenew=false,\nperiodType=PeriodType(rawValue: 0),\nlatestPurchaseDate=Optional(2024-09-20 20:48:21 +0000),\noriginalPurc
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.