Question

iOS: SKProductsRequest took too long to complete

  • 4 February 2024
  • 26 replies
  • 575 views

Userlevel 1
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?


26 replies

Userlevel 4
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.

Userlevel 1
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)

Badge

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.

Badge

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.

Badge

You cannot sell subscription directly from the app store :) 

Badge

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?

Userlevel 1
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.

Badge

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.

Badge +5

I am having this issue now as well. Has anyone gotten a new paywall app approved? 

Userlevel 1
Badge +3

I just faced the same issue again on the new app. @Ryan Glanz , based on this thread the issue seems to be rather widespread, any chance someone from RC Engineering team can provide a bit more insights? Is this issue happening for apps that are not using Revenuecat as well or is it specific to RC sdk? Is it too aggressive timeout inside the RC sdk or something else? Thanks!

Badge +1

Seeing the same issue here. Production, App Store Review, and on TF. We also need to block & wait for the request to resolve.

Badge +1

Seeing the same issue here. Production, App Store Review, and on TF. We also need to block & wait for the request to resolve.

NOTE: In all cases, it is very intermittent. Perhaps one in 10 tries, or even less.

Badge +2

Hello,


I encountered this today when Apple rejected my app that uses `presentPaywall` from react-native-purchases-ui 7.26.0. They sent back the screenshot below. I resubmitted immediately, hoping it is intermittent as others above have shared. I will report back and share the outcome.

 

-Ted

 

 

Badge +2

Circling back to confirm I was able to get Apple to approve the app after resubmitting.

Badge +2

No word on this? I’m seeing reports of this in Sentry as well.

We are also experiencing this in production environment. Any updates?

How can we catch this error and try to refetch the products until it succeeds?
Once this issue occurs, we can't do anything other than restart the app, which is not acceptable as it causes us to LOSE REVENUE.

 

Any advice or solutions would be greatly appreciated!

Reply