Website error codes explained

    39 browser, certificate, DNS and edge errors — each with the most likely cause first, the exact fix, and a free check that tells you in seconds whether it is happening on your own domain.

    Browser & network errors

    Chrome, Edge and Firefox connection failures — the request never completed.

    ERR_CONNECTION_TIMED_OUT

    DNS resolved and the browser tried to open a TCP connection, but nothing answered before the timeout. The server is unreachable, overloaded, or a firewall is dropping the packets silently.

    5 platform guides
    ERR_CONNECTION_REFUSED

    Something answered the connection attempt and rejected it outright. That means the host is reachable but nothing is listening on that port — the web server is stopped, bound to the wrong interface, or on a different port.

    ERR_CONNECTION_RESET

    The connection was established and then abruptly torn down before the response finished. Usually a crashing worker process, a proxy timing out, or middleware killing the connection.

    ERR_CONNECTION_CLOSED

    The browser's connection was closed before it received a complete HTTP response. This can involve the origin, a proxy, a load balancer, or network infrastructure; connection reuse and timeout settings are common areas to investigate.

    ERR_EMPTY_RESPONSE

    The connection succeeded and then the server returned zero bytes. Typically a fatal application error that killed the process before any headers were written, or a protocol mismatch on the port.

    ERR_TOO_MANY_REDIRECTS

    Two rules are bouncing the request back and forth — most often an HTTPS redirect at the application level fighting a proxy that is forwarding as plain HTTP, so each side thinks the other needs to upgrade.

    6 platform guides
    ERR_ADDRESS_UNREACHABLE

    DNS returned an address and the network has no route to it. Common when a DNS record points at a private, retired, or IPv6 address the client cannot reach.

    ERR_NETWORK_CHANGED

    The device switched networks mid-request — Wi-Fi to mobile, a VPN connecting, or an IP address changing. Almost always a client-side condition, not a server fault.

    ERR_INTERNET_DISCONNECTED

    Chrome has no usable network route at all. This is a client-side state; no server configuration produces it.

    ERR_BLOCKED_BY_CLIENT

    The browser itself refused to send the request because an extension — usually an ad or tracker blocker — matched it against a block list. The server was never contacted.

    ERR_HTTP2_PROTOCOL_ERROR

    The browser ended an HTTP/2 stream after detecting a protocol problem. Large response headers and incompatible HTTP/2 handling at an origin, CDN, proxy or WAF are common leads, but the failing hop needs to be identified before changing configuration.

    ERR_QUIC_PROTOCOL_ERROR

    The browser tried HTTP/3 over QUIC and the connection failed. Often a network path that mishandles UDP, or a CDN advertising HTTP/3 support it cannot deliver on that route.

    TLS & certificate errors

    The connection was refused because the certificate or TLS handshake failed.

    ERR_SSL_PROTOCOL_ERROR

    Chrome tried to start an encrypted connection and the server answered with something that is not valid TLS. In almost every case the server is offering a protocol version or cipher the browser refuses, the certificate is broken, or something on the network is intercepting the handshake.

    8 platform guides
    ERR_CERT_DATE_INVALID

    The certificate the server presented is outside its validity window — almost always expired. Either the certificate genuinely lapsed, or the device's clock is wrong so a valid certificate looks expired.

    6 platform guides
    ERR_CERT_AUTHORITY_INVALID

    The browser could not build a trust path from the certificate the server sent to a root it trusts. Usually the server is serving only the leaf certificate without its intermediates, or the certificate is self-signed.

    5 platform guides
    ERR_CERT_COMMON_NAME_INVALID

    The certificate is valid and trusted, but it was issued for a different hostname than the one in the address bar. The classic case is a certificate covering example.com being served for www.example.com.

    3 platform guides
    ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    The browser and server have no protocol version or cipher suite in common, so the handshake ends before it starts. Almost always an origin still pinned to TLS 1.0/1.1 or an ancient cipher list.

    3 platform guides
    ERR_SSL_OBSOLETE_VERSION

    A warning rather than a hard failure: the connection succeeded but negotiated TLS 1.0 or 1.1, which browsers flag as obsolete and will eventually refuse outright.

    SSL handshake failed

    A generic handshake failure reported by servers, CDNs and API clients rather than browsers. The connection reached the server but the TLS negotiation aborted — protocol mismatch, certificate rejection, or a required client certificate.

    Your connection is not private

    Chrome's full-page warning shown whenever certificate validation fails. It is not a single error — the real cause is the NET::ERR_CERT_* code printed underneath it, and that code tells you which of expiry, trust, or hostname is wrong.

    6 platform guides
    ERR_CERT_REVOKED

    The CA has explicitly revoked this certificate — usually because the private key was compromised, the certificate was reissued, or the domain validation was withdrawn. Renewing is not enough; the revoked certificate must stop being served.

    ERR_BAD_SSL_CLIENT_AUTH_CERT

    The server asked for a client certificate during the handshake and rejected the one presented — or none was available. This is mutual TLS, and it fails closed by design.

    DNS errors

    The hostname could not be resolved to an IP address.

    Cloudflare & edge errors

    The CDN reached your origin and got nothing usable back.

    Cloudflare Error 520

    Cloudflare reached your origin and got back a response it could not interpret — an empty reply, a malformed header, or a connection dropped mid-response. The origin is up but misbehaving.

    Cloudflare Error 521

    Cloudflare's connection to the origin was refused. The origin either has nothing listening on the expected port, or its firewall is rejecting Cloudflare's IP ranges.

    Cloudflare Error 522

    Cloudflare tried to open a connection to the origin and nothing answered before the timeout. Usually a firewall silently dropping Cloudflare's traffic, an overloaded origin, or a wrong origin IP.

    2 platform guides
    Cloudflare Error 523

    Cloudflare could not route to the origin at all. Typically the DNS record points at an invalid or unroutable IP, or the origin's network route has been withdrawn.

    Cloudflare Error 524

    Cloudflare connected to the origin successfully, but the origin took longer than 100 seconds to send a complete response. The request is too slow, not unreachable.

    1 platform guide
    Cloudflare Error 525

    Cloudflare reached the origin on port 443 but could not complete a TLS handshake. Check the origin certificate, protocol and cipher support, hostname/SNI configuration, and origin-side logs.

    Cloudflare Error 526

    Cloudflare completed the handshake with the origin but refused its certificate — expired, self-signed, or not matching the hostname — because the SSL mode is Full (Strict).

    Cloudflare Error 1015

    A Cloudflare rate-limiting rule matched the request. Either the client genuinely exceeded a limit, or a rule is scoped too broadly and is catching normal traffic.

    Cloudflare Error 1020

    A Cloudflare WAF or firewall rule blocked the request. The origin never received it. The Security Events log names the exact rule that fired.

    Application errors

    The server answered, but the application behind it failed.

    Looking for a numeric HTTP status?

    Errors like 404, 500 and 502 are documented separately in the HTTP status code reference, and every check on this page is also available as a free tool.

    Last verified: by the Lemwatch research team.