Disable QUIC/HTTP3 support for specific MacOS application

Hello,

I am currently investigating if we can disable usage of QUIC on application level.

I know we can set enable_quic from /Library/Preferences/com.apple.networkd.plist to false but it will have a global impact since this is a system file, all the applications on machine will stop using QUIC. I don't want that. What i am looking for is to disable QUIC only for my application.

Is there any way i can modify URLSession object in my application and disable QUIC? or modify URLSessionConfiguration so system will not use QUIC?

OK, I gotta ask: Why do you want to disable HTTP/3? Your answer won’t affect my response, but I’m super curious.

Regarding your main issue, I’d like to clarify your requirements. Are you trying to:

  • Disable QUIC for your process?
  • Disable HTTP/3 for your process?
  • Disable HTTP/3 for a specific URLSession?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I have a FileProvider based MacOS application where i am trying to download a large folder. The folder has mix of small and large files. Large files are around ~1.5 GB size. I was able to download few files however i have observed that for large file downloads the URLSession times out and download fails. There is no explicit time out set by my application so it is 1 min default. I disabled QUIC by setting enable_quic to false from /Library/Preferences/com.apple.networkd.plist and found that the download worked for the same folder which was not working earlier. I suspect something is failing in network layer. Also i checked the server logs in Kibana where i didn't find the entries around those files that were failed to download which means the requests didn't even reach to server and failed before that.

I already tried increasing the time out for URLSession which didn't work.

I want to disable QUIC only for my application not for whole system. URLSessions belongs to my application should have QUIC disabled. So i am checking if it is even feasible to disable QUIC for application.

There’s not a good way to disable QUIC for a specific URLSession [1].

Before going further I’d like to get a better handle on the original problem. First up, is this unique to the file provider context? If you pull the code out into a test app and then download the same set of files from there, does it still reproduce the problem?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] I can think of some less-than-good ways to do this, but I’d prefer to defer that discussion for the moment.

Disable QUIC/HTTP3 support for specific MacOS application
 
 
Q