You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Unattended operation impossible on slower wifi, pnpm self-sabotages via too high connection count #12791
I verified that the issue exists in the latest pnpm release
pnpm version
11.9.0
Which area(s) of pnpm are affected? (leave empty if unsure)
No response
Link to the code that reproduces this issue or a replay of the bug
No response
Reproduction steps
Have slow wifi
Run pnpm -w build:... for some project with a lot of dependencies
Describe the Bug
Unattended operation of pnpm's install appears to be in practice impossible on slower wifi, since pnpm self-sabotages via too high connection count to the point where it starves half of its own connections with the sheer exhuberance of downloads at once, making it abort with timeout errors even though there is continuous download progress.
This behavior also seems to impede other processes on the same system, since too many connections can impact them as well due to this behavior apparently degrading. various auto rate limiting mechanisms that are essential on slower wifis. Like, for example TCP's automatic adjustment to approximately the highest stable speed while leaving other processes able to still download things fairly as well, doesn't seem to hold up well if you completely drown it with parallel connections.
Expected Behavior
Use a single connection by default, make parallel connections either opt-in or dependent on measured download speed. If any connection times out while others still run, then it should downscale to a single connection again.
Which Node.js version are you using?
v24.18.0
Which operating systems have you used?
macOS
Windows
Linux
If your OS is a Linux based, which one it is? (Include the version if relevant)
Activity
Shuuren commentedon Sep 25, 2026
I'm working on a fix for this.
fix(network): downscale fetch concurrency when a timeout has active p…