"Max Concurrent Web Requests" Setting Best Practices for mobile?!

Unity 2019.4.20.f1, Addressables 1.18.4, Unity Cloud Content Delivery, Android Player.

The Max Concurrent Web Requests setting is set to 500 by default:

7281529--880123--upload_2021-6-29_11-31-50.png

Using Addressables.DownloadDependenciesAsync(IEnumerable) caused at some point all sorts of exceptions and errors, such as:

  • UnityWebRequest result : Received no data in response
  • Curl error 7: Failed to connect to xxx.client-api.unity3dusercontent.com port 443: Connection timed out
  • UnityWebRequest result : Cannot connect to destination host

In various desperate attempts to fix it, I reduced Max Concurrent Web Requests from 500 to 20.

This got rid of these errors. Was it just luck and is totally unrelated, or is the 500 default setting not feasible on mobile platforms?

What's a reasonable "Max Concurrent Web Requests" setting for Android and iOS?

Related post:
Extremely slow download via Addressables.DownloadDependenciesAsync and Unity Cloud Content Delivery: https://discussions.unity.com/t/846582

1 Like

I posted a bit about this on your showcase thread but I wanted to post something on here as well. It looks like it is a known issue with the current UnityWebRequest implementation where sending "too many" can cause timeouts and other failures.

I'm having trouble finding what "too many" actual equates to but since I can't seem to find a direct answer that it varies somewhat.

For mobile, 500 could be too high. We could probably change the default if your current build target is a mobile platform. I'll make a ticket for us to investigate doing that but I'm not sure when/if something like that would get added to the package.

3 Likes

Thank you for the reply.

Since I reduced the Max Concurrent Web Requests as mentioned above, I no longer see these errors. It seems it's related. I'll go with the "20" for now, unless you find a magic number that works best.


Do you happen to know the public issue tracker URL to the issue?

1 Like

I have a similar problem. When I try to download 300+ asset that each have their own .bundle(Pack separately)
my editor use nearly 100 cpu time but if I put 10-20 as Max Concurrent Web Requests it is ok.

2 Likes

We are encountering the same issue when players have the game installed on an HDD or are placed in a remote location e.g. the Phillipines. (hosted in Unity CCD)
Currently running some testing to see if the 20 concurrent request fixes those issues.

2 Likes

We had the same issues. Setting the value to 20 fixed the problems we had, downloads are running buttery smooth now. We are getting full 150 MBit/s from our infrastructure now.

How a webserver (or CDN) reacts to as many as 500 connection attempts really depends on the server configuration - by default it may very well classify the connections as a DDoS attempt. TBH, having 500 concurrent connections as a default value is nuts.

2 Likes

Hi.

Does this option still exist? I can't find it anywhere.

Is there a better way to determine what value to set this at other than the "does it fall over" test?