This error means the connection ended politely but early: the server (or something in front of it) closed the socket before the response was complete. It often strikes on pages that take a while to generate, large downloads, and right after a network switch, when an idle connection is quietly retired by a load balancer or firewall.
Closed connections for many visitors point at timeout alignment: if your load balancer closes idle connections sooner than your application expects, or your app closes keep-alive connections the balancer still hands out, users see this error intermittently. Match the timeouts, check the balancer and application logs for connection resets at matching timestamps, and look for the application restarting workers under memory pressure.
If one page closes the connection at the same step every time (a report that generates for 60 seconds, an upload of a certain size), a timeout or size limit on the server side is the near-certain cause, and only the operator can raise it.
What is the difference between ERR_CONNECTION_CLOSED and ERR_CONNECTION_RESET? Closed means the connection ended with an orderly shutdown (a TCP FIN) before the response finished. Reset means it was torn down abruptly (a TCP RST). The user symptom is the same; closed usually implicates idle timeouts and load balancers, reset implicates crashes and firewalls.
Why does ERR_CONNECTION_CLOSED happen on the first click and then work? The browser tried to reuse an idle pooled connection that the server had already closed. The retry opens a fresh connection and succeeds. Occasional first-click failures of this kind are a known keep-alive race, not a sign of a broken site.