-
Notifications
You must be signed in to change notification settings - Fork 97
Open
Labels
Description
- I have updated Purchases SDK to the latest version
- I have read the Contribution Guidelines
- I have searched the Community
- I have read docs.revenuecat.com
- I have searched for existing Github issues
Describe the bug
I try to handle sideloaded apps / old unsupported Android version or Billing api versions / devices without Googleplay / etc
=> All the edge cases polluting my production logs/bugtracker.
I do several things to determine if my whole "paywall" feature should be active (everything fine on the user device) or not :
- try catch around Purchases.configure
- call to Purchases.canMakePayments
But it seems not bulletproof because I have traces of errors while trying to fetch offerrings (with errors that would normally have been catched by canMakePayments) :
Last error in the user session is :
com.jscti.commons.ui.premium.PurchasesException: Failed to load product: There is an issue with your configuration. Check the underlying error for more details.
at com.jscti.commons.ui.premium.PremiumManagerKt$fetchPremiumProduct$2$1$1.onError(PremiumManager.kt:310)
at com.revenuecat.purchases.PurchasesOrchestrator$getOfferings$1.invoke(:7)
at com.revenuecat.purchases.PurchasesOrchestrator$getOfferings$1.invoke(PurchasesOrchestrator.kt:530)
at com.revenuecat.purchases.common.offerings.OfferingsManager$getOfferings$onErrorWithTracking$1.invoke(:25)
at com.revenuecat.purchases.common.offerings.OfferingsManager$getOfferings$onErrorWithTracking$1.invoke(:4)
at com.revenuecat.purchases.common.offerings.OfferingsManager$getOfferings$5.invoke(:9)
at com.revenuecat.purchases.common.offerings.OfferingsManager$getOfferings$5.invoke(OfferingsManager.kt:78)
at com.revenuecat.purchases.common.offerings.OfferingsManager$handleErrorFetchingOfferings$2.invoke(:6)
at com.revenuecat.purchases.common.offerings.OfferingsManager$handleErrorFetchingOfferings$2.invoke(:0)
at com.revenuecat.purchases.common.offerings.OfferingsManager.dispatch$lambda$7(OfferingsManager.kt:0)
at com.revenuecat.purchases.common.offerings.OfferingsManager.$r8$lambda$Pldn3UTduixDp-oHHYCTcjyyHb4(OfferingsManager.kt:0)
at N.AndroidTextContextMenuToolbarProvider$$ExternalSyntheticLambda5.run(:0)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:9634)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
But I can see a lot more errors before that for the same user session, and I think it's the real one :
PurchasesError(code=PurchaseNotAllowedError, underlyingErrorMessage=Error getting billing config - DebugMessage: Play Store version installed does not support get billing config.. ErrorCode: FEATURE_NOT_SUPPORTED. SubResponseCode: NO_APPLICABLE_SUB_RESPONSE_CODE., message='The device or user is not allowed to make the purchase.')
lastly, the first error in the stack confirms it :
BillingClient: Current client doesn't support get billing config.
Note that :
- my revenuecat / googleplay config is totally fine, I have active purchases without issues
- I even try to call BillingClient.startConnection before activating revenuecat, but that also didn't detect any issue
- I aslo systematically receive a "NO_APPLICABLE_SUB_RESPONSE_CODE" when the app is being reviewed by google when uploading a new release .. In this case, also, canMakePayments don't detect any issue
Details about this user (installerStore is clearly weird) :
isSideLoaded: false
installerStore: ru.qjrnvtrr.bsamnhgfw
device: SM-G998U1
os: Android 15
os.build: AP3A.240905.015.A2.G998U1UESHHYI2
rooted: no
online: true
- Environment
- Platform: Android 15
- SDK version: 9.15.2
- OS version: Android 15
- Debug logs that reproduce the issue
- Steps to reproduce, with a description of expected vs. actual behavior
- Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)
Additional context
Add any other context about the problem here.