Geonode logo
Network errors

How to Fix ERR_CONNECTION_RESET in Chrome

Find out whether your computer, your network or the site sent the reset, then fix that side.

Updated

TL;DR

ERR_CONNECTION_RESET means a TCP reset cut Chrome's connection to the site, sent by the site, a filter on your network or software on your computer. The quickest fix to try is disconnecting any VPN or proxy and reloading, then checking that your firewall or antivirus isn't blocking the site.

What ERR_CONNECTION_RESET looks like in Chrome and its tools

Tools built on Chrome report the same net:: code; a page reset mid-load can stay half drawn with no error page.

WhereWhat you see
Chrome error pageThis site can't be reached. The connection was reset. ERR_CONNECTION_RESET
Chrome DevTools, Network panel Status column(failed) net::ERR_CONNECTION_RESET
Chrome console, failed page or fetch() requestFailed to load resource: net::ERR_CONNECTION_RESET
fetch() in the page's JavaScriptTypeError: Failed to fetch
Puppeteer page.goto()net::ERR_CONNECTION_RESET at https://example.com
Playwright page.goto()page.goto: net::ERR_CONNECTION_RESET at https://example.com/

Why this happens

The site, or something between you and it, cut the connection off abruptly.

Chrome got a TCP reset, a packet that ends a connection at once. The site may send it, or a VPN, antivirus or network filter; filters can act as soon as Chrome names the site in its first TLS message.

Diagnose your ERR_CONNECTION_RESET first

The first three checks need no terminal; the last two are for developers and site owners.

  • Open the same address on a phone with Wi-Fi off; if it loads there, the reset comes from this computer or its network.

  • Try a few other sites; if they all reset too, the cause is this device or connection, not one site.

  • Watch the page; if part of it appears and loading then stops, the reset came after the site began answering.

  • Run curl -sS -o /dev/null with the https:// address; exit code 35 means the reset hit the TLS handshake, 56 that it came later.

  • If you run the site, search its access log for the failed visit; no entry means the connection was cut before the server handled it.

Solutions ranked by effectiveness

Start on your own computer, then check Chrome and your network; the third fix is for site owners.

  1. Most common fix

    Test your VPN, proxy and security software

    Applies when other devices on the same network open the site. Test one program at a time, for a single reload each.

    1. Disconnect your VPN app and turn off any proxy or VPN extension, then click Reload.

    2. In your firewall or antivirus, allow Chrome if a rule or alert blocks it.

    3. Otherwise pause it for one reload, then switch it straight back on.

    4. If the software calls the site dangerous, leave it blocked.

  2. Check next

    Update Chrome and check your network

    Applies when the first fix changed nothing. Google also lists an outdated browser and an unstable connection, and some networks filter sites on purpose.

    1. Select More > Help > About Google Chrome, and click Relaunch if it appears.

    2. Restart your modem and router, then reload the page.

    3. On a work or school network, ask IT whether a filter blocks the site.

  3. Site owners

    Fix servers that reset a split TLS hello

    Applies when Chrome visitors get this error on your HTTPS site while other clients connect. Test your own host; on a reset, update the server or middlebox in front, or ask its vendor.

    import contextlib, socket, ssl, time
    host = "example.com"
    tls = ssl.create_default_context().wrap_bio(ssl.MemoryBIO(), out := ssl.MemoryBIO(), server_hostname=host)
    with contextlib.suppress(ssl.SSLWantReadError):
        tls.do_handshake()
    hello = out.read()
    s = socket.create_connection((host, 443), timeout=10)
    try:
        s.sendall(hello[:100]); time.sleep(1); s.sendall(hello[100:])
        print("answered" if s.recv(5) else "closed without a reply")
    except ConnectionError:
        print("reset: this server cannot read a split ClientHello")

Stop the ERR_CONNECTION_RESET from coming back

Habits that make resets rarer and the remaining ones easier to trace.

  1. After installing a VPN or security suite, open a few HTTPS sites in Chrome to catch interference early.

  2. Send NEL and Report-To headers, so visitors' Chrome browsers report later tcp.reset failures to an endpoint you choose.

  3. Try new firewall or load balancer firmware with the current Chrome release before it reaches your users.

Confirm your VPN is really offGeonode's free What is my IP tool shows your current IP, its ISP and location.
Try ISP proxies

Related errors

Learn more

FAQ

It is Chrome's code for a connection that ended with a reset packet instead of a normal close, so the page could not finish loading. The site, a network device or a program on your computer sent that packet.

Its server or firewall may be resetting connections, or a filter on your network may target its name, which Chrome's TLS hello often carries in plain text. If the block is deliberate, ask whoever runs that network or site.

Yes: if the proxy Chrome uses accepts the connection and then resets it, Chrome shows ERR_CONNECTION_RESET. A proxy Chrome cannot reach at all, because its name does not resolve or nothing listens on its port, gives ERR_PROXY_CONNECTION_FAILED.

Chrome adds a post-quantum key share (ML-KEM) that makes its TLS hello about 2 KB, while macOS's built-in curl sends about 300 bytes. Devices that mishandle the larger hello reset Chrome, and its opt-out policy stopped at Chrome 146.

A reload sends the request again, and a reset caused by a brief glitch or a busy server may not happen twice. Chrome already resends a request itself when a reused idle connection is reset before any reply.

ERR_EMPTY_RESPONSE means the server closed the connection normally, with a FIN, before sending any byte; Chrome titles that page "This page isn't working". ERR_CONNECTION_RESET follows an abrupt RST and sits under "This site can't be reached".

Check proxies before Chrome uses them

Geonode's free proxy checker shows whether each proxy is alive, with its protocol and latency.