CC Desktop updater opens hundreds of concurrent HTTPS connections, causing DNS resolution failures
Environment
Windows 11 Pro (10.0.26200 Build 26200)
Creative Cloud Desktop versions:
- Home / Apps / Files: 6.8.1.856
- Benefits: 1.1.50
- Create: 1.1.214
- Plugins: 6.8.11
- CC Libs Sync (CC Library): 4.13.3
- Stock & Marketplace: 3.3.0.4
- Adobe Content Synchronizer (Core Sync) 7.8.10.1
- CC Content Manager (CCX Process): 7.1.3.2
- Network:
- LAN: 1000 Mb/s (full path)
- WAN: 100Mb/s (symmetrical)
- Issue reproducible on multiple networks
- Test Machine:
- i7-14700K, 64GB RAM, 1GB/s ethernet to the switch
Description
When Creative Cloud Desktop performs application updates, it opens a very large number of parallel outbound HTTPS connections. During this time, other applications on the same machine fail to resolve DNS names for the duration of the network portion of the update.
This presents as:
Browsers failing to load pages
Package managers / APIs timing out
General “no internet” behaviour
The issue resolves immediately when Creative Cloud updates are paused or completed.
Expected behaviour
Creative Cloud Desktop should:
Avoid starving DNS resolution for other applications
Implement connection or bandwidth throttling
Yield network resources to the OS
Actual behaviour
Creative Cloud consumes all available outbound connections
DNS requests from unrelated applications time out
Windows network remains “connected” but unusable
Notes
This appears to be connection saturation rather than raw bandwidth usage
Limiting Creative Cloud using OS-level QoS policies prevents the issue entirely
This suggests missing internal throttling or backoff logic
Supporting Evidence
1) Connection Counts:
I manually initiated an update of Camera Raw v18.11 on 16 Dec 2025 and sampled connection counts via PowerShell.
Connection counts ramp up rapidly and stabilise at approximately:
~366 Established
~366 Bound
(≈ 732 total TCP sockets owned by Setup.exe)
This occurs well after the WAN link is already saturated at 100 Mb/s.
Representative samples are included below (full logs attached).
KEY OBSERVATION: Connection count continues to increase even though aggregate throughput remains constant.
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
5 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50290??90.244.154.34??443"), MSFT_NetTCPConnection (InstanceID = "...
5 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50290??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??502...
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
45 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50330??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??503...
43 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50328??90.244.154.34??443"), MSFT_NetTCPConnection (InstanceID = "...
2 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50330??90.244.154.34??443"), MSFT_NetTCPConnection (InstanceID = "...
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
65 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50351??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??503...
64 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50350??90.244.154.34??443"), MSFT_NetTCPConnection (InstanceID = "...
1 SynSent Get-NetTCPConnection |PConnection (InstanceID = "192.168.1.6??50351??90.244.154.34??443")}
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
91 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50378??90.244.154.34??443"), MSFT_NetTCPConnection (InstanceID = "...
91 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50378??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??503...
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
93 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50382??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "1...
93 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50382??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??503...
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
124 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50414??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??504...
123 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50414??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "1...
1 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50407??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
149 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50439??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??504...
148 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50438??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "1...
1 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50439??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
179 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50470??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??504...
178 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50470??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "1...
1 SynSent Get-NetTCPConnection |PConnection (InstanceID = "192.168.1.6??50460??95.101.63.90??443")}
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
218 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50509??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50508??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50507??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50506??0.0.0.0??0")...}
215 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50508??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50507??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50505??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50504??9...
3 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50509??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50506??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50503??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
251 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50544??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50543??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50542??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50541??95.101.63.90??443")...}
251 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50544??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50543??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50542??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??50541??0.0.0.0??0")...}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
285 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65114??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65113??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65112??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65111??0.0.0.0??0")...}
283 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65114??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65113??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65112??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65111??95.101.63.90??443")...}
2 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??61907??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??51216??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
322 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65507??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65506??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65505??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65504??0.0.0.0??0")...}
321 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65506??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65505??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65504??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65503??95.101.63.90??443")...}
1 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65507??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
336 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65534??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65533??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65532??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65531??95.101.63.90??443")...}
336 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65534??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65533??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65532??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65531??0.0.0.0??0")...}
1 FinWait2 {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50307??90.244.154.34??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
339 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65534??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65533??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65532??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65531??95.101.63.90??443")...}
339 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65534??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65533??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65532??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65531??0.0.0.0??0")...}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
345 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65534??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65533??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65532??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65531??0.0.0.0??0")...}
344 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65534??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65533??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65532??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65531??95.101.63.90??443")...}
1 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??50587??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
364 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65534??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65533??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65532??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65531??0.0.0.0??0")...}
363 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65534??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65533??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65532??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65531??95.101.63.90??443")...}
1 SynSent {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??52237??95.101.63.90??443")}
PS C:\Users\xxxxxxxxxx> Get-NetTCPConnection |
>> Where-Object { $_.OwningProcess -eq (Get-Process Setup).Id } |
>> Group-Object State |
>> Sort Count -Descending
Count Name Group
----- ---- -----
366 Established {MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65534??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65533??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65532??95.101.63.90??443"), MSFT_NetTCPConnection (InstanceID = "192.168.1.6??65531??95.101.63.90??443")...}
366 Bound {MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65534??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65533??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65532??0.0.0.0??0"), MSFT_NetTCPConnection (InstanceID = "0.0.0.0??65531??0.0.0.0??0")...}
2) DNS Failures
Once concurrent connections exceed approximately 150–180, DNS resolution failures begin.
These failures persist until the Creative Cloud update is paused or completes, at which point DNS resolution immediately recovers.
PS C:\Users\xxxxxxxxxx> Resolve-DnsName example.com -ErrorAction Continue
Resolve-DnsName : example.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName example.com -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationTimeout: (example.com:String) [Resolve-DnsName], Win32Exception
+ FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName
PS C:\Users\xxxxxxxxxx> Resolve-DnsName example.com -ErrorAction Continue
Resolve-DnsName : example.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName example.com -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationTimeout: (example.com:String) [Resolve-DnsName], Win32Exception
+ FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName
PS C:\Users\xxxxxxxxxx> Resolve-DnsName example.com -ErrorAction Continue
Resolve-DnsName : example.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName example.com -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationTimeout: (example.com:String) [Resolve-DnsName], Win32Exception
+ FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName
PS C:\Users\xxxxxxxxxx> Resolve-DnsName example.com -ErrorAction Continue
Resolve-DnsName : example.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName example.com -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationTimeout: (example.com:String) [Resolve-DnsName], Win32Exception
+ FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName
Conclusion
The Creative Cloud updater uses extreme parallelism to maximise download speed, opening several hundred concurrent HTTPS connections. Once the WAN link is saturated, additional connections provide no throughput benefit but significantly degrade latency-sensitive traffic such as DNS.
This results in loss of interactive network usability on Windows systems during updates, particularly on non-gigabit WAN connections. While higher bandwidth reduces the impact window, it does not address the underlying design issue.
For comparison, Windows Update typically operates within 6–16 concurrent connections (rarely exceeding ~25), while remaining fully usable.
Recommendations
- Add a user-configurable “max connections” setting
- Add bandwidth throttling (total download cap)
- Implement adaptive backoff, reducing connection count once throughput plateaus
All of the above would significantly improve coexistence with other applications while preserving update reliability.