Search code examples
androidin-app-purchasein-app-billingandroid-billing

Billing library 2.0 querySkuDetailsAsync reports error 5 and return an empty SkuDetails list


I upgraded to billing library 2 on my latest version and things seem ok but I have had a few users (1.6% based on my Fabric event) have contacted me because of issues making purchases. After investigating, it turns out that querySkuDetailsAsync() is giving an error for those users. I also now have a phone that can reproduce the issue (Android Q Pixel 1 XL). The error code is 5, debug message is empty.

Since I have to pass SkuDetails in order to initiate a purchase, what can I do about this error? Even at 1.6% being a low amount, it can be a fairly large number of purchases.

Anyone have any ideas? The code is clearly working for most users, I am still getting purchases, I can make test purchases on several test devices, just not on one. This is a for a regular purchase, not a subscription.

Thanks.

Edit: I updated to 2.0.2 and still having this issue. I went ahead and did some step by step debugging of what happens when I make the query and I can see that it gets the SKUs just fine but then com.android.billingclient.api.BillingClientImpl.querySkuDetailsInternal() it calls getSkuDetailsExtraParams and that is where it all goes bad. I'm attaching some screenshots.

Here you can see how the skuList list has items on it. enter image description here

Here you can see how after calling getSkuDetailsExtraParams now it has the error code 5.

enter image description here

I am reporting this to Google as well since it looks like a bug to me.


Solution

  • It's supposed to be fixed by an update to Play Billing Library 2.0.3