Question

iOS: SKProductsRequest took too long to complete

  • 4 February 2024
  • 16 replies
  • 164 views

Badge +3

Hey!

 

I’m getting rejections from Apple due to the fact that products are not loaded on the paywall during their review. In the logs I see that revenuecat sdk returns “SKProductsRequest took too long to complete” after a very long timeout. And I’m not successful in reproducing this behaviour locally or with any other test devices.

 

I’m using React Native and what I do in the code is simply call `await Purchases.getOfferings();` and using `7.6.0` version of the library.

 

I don’t have any additional logs or information since SDK only throws this error. Any advice on how to debug or resolve this?


16 replies

Userlevel 3
Badge +8

Hi Sergey,

If everything is working when you’re testing, this is most likely due to sandbox network flakiness (a common problem) during app review. There’s not much you can do about that but resubmit the binary for review (some devs had to submit their app a few times before it got approved). Fortunately, Apple’s production environment is much better and doesn’t have this problem for real purchases.

Badge +3

Hey Ryan, thanks for the reply! That’s what I did eventually, just resubmitted the same binary and it worked.

 

But now I’m seeing the same reports in Sentry for some real users in production environment. Doesn’t happen often, the number of users affected are in single-digit numbers per day so far, but anyway. Is there anything RevenueCat SDK can do to improve that or is it fully on iOS side?

Badge +2

I’ve had a perfectly working flow for a long time now but all of a sudden, when a minor update was pushed out, crashlytics is now reporting 

```PlatformException(32, SKProductsRequest took too long to complete., {readableErrorCode: PRODUCT_REQUEST_TIMED_OUT_ERROR, readable_error_code: PRODUCT_REQUEST_TIMED_OUT_ERROR, message: SKProductsRequest took too long to complete., underlyingErrorMessage: , code: 32}, null)```

There is no reason why my update would cause this. 

I have updated to the latest release, pushed again but its still happening. Do you guys have any insight as to why?

Things seem to work perfectly across all of my test devices.

Badge +4

My colleagues are facing a similar issue all of a sudden and their app gets rejected due to ”Unlock feature page was loading indefinitly and we were unable to proceed with purchase”. 

Badge +2

My colleagues are facing a similar issue all of a sudden and their app gets rejected due to ”Unlock feature page was loading indefinitly and we were unable to proceed with purchase”. 

My problem is, I cant recreate it but, it is happening in production.

There is no way my updates would cause this.

Badge +4

My colleagues are facing a similar issue all of a sudden and their app gets rejected due to ”Unlock feature page was loading indefinitly and we were unable to proceed with purchase”. 

My problem is, I cant recreate it but, it is happening in production.

There is no way my updates would cause this.

Okay it’s a slightly different case. Apparently it works in production as well as sandbox but still not working for Apple reviews for whatever reason. No changes were made to purchases and it had been working for very long time but all of a sudden it started causing errors for reviewers. It’s a strange coincidence that both issues suddenly started happening at around the same time 

Badge +2

I can confirm its definitely happening with Apple devs. My app just went into review and bam, crashlytics shows up the following;

PlatformException(32, SKProductsRequest took too long to complete., {code: 32, readableErrorCode: PRODUCT_REQUEST_TIMED_OUT_ERROR, readable_error_code: PRODUCT_REQUEST_TIMED_OUT_ERROR, underlyingErrorMessage: , message: SKProductsRequest took too long to complete.}, null)

we have the exact issue with app store review today. 

Badge +2

Interesting to note though, app does get approved so its clearly not a real issue for Apple and / or they are already aware of a bug internally and simply ignore it while Apple Dev’s fix it.

No it does not get approved as our app is behind a paywall and this error prevents paywall to be shown

Badge +2

Ah, we are not a paywall type of company, its misleading to be a free app and then paywall a customer.

You cannot sell subscription directly from the app store :) 

I’ve had the same issue with my app review yesterday. I’ve submitted the app once again. Did some of you got their app approved?

It’s the very first version of my app, has it something to do with that?

Badge +3

I’ve had the same issue with my app review yesterday. I’ve submitted the app once again. Did some of you got their app approved?

It’s the very first version of my app, has it something to do with that?

It got it approved on the second try and I didn’t do anything in addition to just resubmitting.

 

But now I’m seeing the same error reported in production environment for some users, and that is concerning, considering there’s no way to reproduce or debug it.

I’ve had the same issue with my app review yesterday. I’ve submitted the app once again. Did some of you got their app approved?

It’s the very first version of my app, has it something to do with that?

It got it approved on the second try and I didn’t do anything in addition to just resubmitting.

 

But now I’m seeing the same error reported in production environment for some users, and that is concerning, considering there’s no way to reproduce or debug it.

We switched into new paywall ui mode and removed the list offers request, only thing that worked for now. 

Badge +3

Got the build rejected again by Apple Review. I’m using RevenueCat Paywall and Offering metadata features. Fetching the subscriber status and metadata is the first request that is performed on our app launch - the following app flow depends on the response in this requests. 

Was rejected previously because Apple Reviewer could not reached the Paywall in the app.
So now, I added an error handling to display the error to the user.
“Error. SKProductsRequest took too long to complete.”

I can image this being an issue “due to sandbox network flakiness during app review”, but do you guys REALLY UNDERSTAND what’s going on? What is the real issue behind this “flakiness”?

I bet there’s smth that could be done on the RC SDK side to avoid this.

Reply