---
title: "Website error codes: causes and fixes"
description: "Browser, TLS, DNS and Cloudflare error codes explained with the most likely cause first, the exact fix, and a free live check."
canonical: "https://lemwatch.com/errors"
source: "https://lemwatch.com"
---

# 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 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,…
- 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…
- ERR_CONNECTION_RESET — The connection was established and then abruptly torn down before the response finished. Usually a crashing worker process, a proxy timing…
- ERR_CONNECTION_CLOSED — The server closed the connection cleanly but before sending a complete response. Close cousin of a reset, and the same short list of…
- ERR_EMPTY_RESPONSE — The connection succeeded and then the server returned zero bytes. Typically a fatal application error that killed the process before any…
- 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…
- 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…
- 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…
- 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.…
- ERR_HTTP2_PROTOCOL_ERROR — The HTTP/2 connection broke a protocol rule and the browser aborted the stream. Usually caused by a server or proxy with a buggy HTTP/2…
- 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…

## 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…
- ERR_CERT_DATE_INVALID — The certificate the server presented is outside its validity window — almost always expired. Either the certificate genuinely lapsed, or…
- 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…
- 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…
- 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…
- 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…
- 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…
- 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_*…
- ERR_CERT_REVOKED — The CA has explicitly revoked this certificate — usually because the private key was compromised, the certificate was reissued, or the…
- 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,…

## DNS errors

 The hostname could not be resolved to an IP address.

- DNS_PROBE_FINISHED_NXDOMAIN — The DNS lookup completed and the authoritative answer was 'this name does not exist'. Either the record is genuinely missing, the domain…
- ERR_NAME_NOT_RESOLVED — Chrome could not turn the hostname into an IP address. Closely related to NXDOMAIN but broader: it also covers resolver failures and…
- DNS_PROBE_STARTED — A transient state Chrome shows while it retries a failed lookup with its own probe. If it sticks, the resolver is not answering at all —…
- DNS_PROBE_FINISHED_BAD_CONFIG — The probe finished and concluded the device's DNS configuration itself is broken — a bad resolver address, a corrupted network profile, or…
- DNS_PROBE_FINISHED_NO_INTERNET — The DNS probe could not reach any resolver because there is no working route to the internet. The domain is irrelevant here — connectivity…
- Server DNS address could not be found — The human-readable wrapper Chrome shows around a DNS failure. The technical code underneath — usually DNS_PROBE_FINISHED_NXDOMAIN or…

## 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…
- 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…
- Cloudflare Error 522 — Cloudflare tried to open a connection to the origin and nothing answered before the timeout. Usually a firewall silently dropping…
- 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…
- 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…
- Cloudflare Error 525 — Cloudflare reached the origin on port 443 but the TLS handshake failed. Nearly always the origin has no valid certificate, no certificate…
- Cloudflare Error 526 — Cloudflare completed the handshake with the origin but refused its certificate — expired, self-signed, or not matching the hostname —…
- 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…
- 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…

## Application errors

 The server answered, but the application behind it failed.

- Error establishing a database connection — WordPress loaded but could not connect to MySQL. Either the credentials in wp-config.php are wrong, the database server is down, or…
- White screen of death — PHP hit a fatal error with display_errors off, so the page rendered as blank white with an HTTP 200 or 500. Nothing is visibly broken to a…

## All 98 pages in this section

- [Cloudflare Error 1015: You are being rate limited](https://lemwatch.com/errors/cloudflare-1015)
- [Cloudflare Error 1020: Access denied by a firewall rule](https://lemwatch.com/errors/cloudflare-1020)
- [Cloudflare Error 520: Web server returned an unknown error](https://lemwatch.com/errors/cloudflare-520)
- [Cloudflare Error 521: Web server is down](https://lemwatch.com/errors/cloudflare-521)
- [Cloudflare Error 522: Connection timed out to the origin](https://lemwatch.com/errors/cloudflare-522)
- [Cloudflare Error 522 on Nginx](https://lemwatch.com/errors/cloudflare-522/in-nginx)
- [Cloudflare Error 522 on WordPress](https://lemwatch.com/errors/cloudflare-522/in-wordpress)
- [Cloudflare Error 523: Origin is unreachable](https://lemwatch.com/errors/cloudflare-523)
- [Cloudflare Error 524: A timeout occurred while waiting for the origin](https://lemwatch.com/errors/cloudflare-524)
- [Cloudflare Error 524 on WordPress](https://lemwatch.com/errors/cloudflare-524/in-wordpress)
- [Cloudflare Error 525: SSL handshake failed with the origin](https://lemwatch.com/errors/cloudflare-525)
- [Cloudflare Error 526: Invalid SSL certificate on the origin](https://lemwatch.com/errors/cloudflare-526)
- [DNS_PROBE_FINISHED_BAD_CONFIG: The DNS configuration is invalid](https://lemwatch.com/errors/dns-probe-finished-bad-config)
- [DNS_PROBE_FINISHED_NO_INTERNET: No usable internet connection for DNS](https://lemwatch.com/errors/dns-probe-finished-no-internet)
- [DNS_PROBE_FINISHED_NXDOMAIN: The domain name does not exist](https://lemwatch.com/errors/dns-probe-finished-nxdomain)
- [DNS_PROBE_FINISHED_NXDOMAIN on Cloudflare](https://lemwatch.com/errors/dns-probe-finished-nxdomain/in-cloudflare)
- [DNS_PROBE_FINISHED_NXDOMAIN on Shopify](https://lemwatch.com/errors/dns-probe-finished-nxdomain/in-shopify)
- [DNS_PROBE_FINISHED_NXDOMAIN on Android](https://lemwatch.com/errors/dns-probe-finished-nxdomain/on-android)
- [DNS_PROBE_FINISHED_NXDOMAIN on Chrome](https://lemwatch.com/errors/dns-probe-finished-nxdomain/on-chrome)
- [DNS_PROBE_FINISHED_NXDOMAIN on iPhone](https://lemwatch.com/errors/dns-probe-finished-nxdomain/on-iphone)
- [DNS_PROBE_FINISHED_NXDOMAIN on Mac](https://lemwatch.com/errors/dns-probe-finished-nxdomain/on-mac)
- [DNS_PROBE_FINISHED_NXDOMAIN on Windows](https://lemwatch.com/errors/dns-probe-finished-nxdomain/on-windows)
- [DNS_PROBE_STARTED: Chrome's DNS probe is still running](https://lemwatch.com/errors/dns-probe-started)
- [ERR_ADDRESS_UNREACHABLE: The IP address cannot be reached](https://lemwatch.com/errors/err-address-unreachable)
- [ERR_BAD_SSL_CLIENT_AUTH_CERT: The client certificate was rejected](https://lemwatch.com/errors/err-bad-ssl-client-auth-cert)
- [ERR_BLOCKED_BY_CLIENT: An extension blocked the request](https://lemwatch.com/errors/err-blocked-by-client)
- [ERR_CERT_AUTHORITY_INVALID: The certificate is not issued by a trusted authority](https://lemwatch.com/errors/err-cert-authority-invalid)
- [ERR_CERT_AUTHORITY_INVALID on Cloudflare](https://lemwatch.com/errors/err-cert-authority-invalid/in-cloudflare)
- [ERR_CERT_AUTHORITY_INVALID on WordPress](https://lemwatch.com/errors/err-cert-authority-invalid/in-wordpress)
- [ERR_CERT_AUTHORITY_INVALID on Android](https://lemwatch.com/errors/err-cert-authority-invalid/on-android)
- [ERR_CERT_AUTHORITY_INVALID on iPhone](https://lemwatch.com/errors/err-cert-authority-invalid/on-iphone)
- [ERR_CERT_AUTHORITY_INVALID on Windows](https://lemwatch.com/errors/err-cert-authority-invalid/on-windows)
- [ERR_CERT_COMMON_NAME_INVALID: The certificate does not match the hostname](https://lemwatch.com/errors/err-cert-common-name-invalid)
- [ERR_CERT_COMMON_NAME_INVALID on AWS S3](https://lemwatch.com/errors/err-cert-common-name-invalid/in-aws-s3)
- [ERR_CERT_COMMON_NAME_INVALID on Cloudflare](https://lemwatch.com/errors/err-cert-common-name-invalid/in-cloudflare)
- [ERR_CERT_COMMON_NAME_INVALID on Chrome](https://lemwatch.com/errors/err-cert-common-name-invalid/on-chrome)
- [ERR_CERT_DATE_INVALID: The certificate has expired or is not yet valid](https://lemwatch.com/errors/err-cert-date-invalid)
- [ERR_CERT_DATE_INVALID on Cloudflare](https://lemwatch.com/errors/err-cert-date-invalid/in-cloudflare)
- [ERR_CERT_DATE_INVALID on Shopify](https://lemwatch.com/errors/err-cert-date-invalid/in-shopify)
- [ERR_CERT_DATE_INVALID on WordPress](https://lemwatch.com/errors/err-cert-date-invalid/in-wordpress)
- [ERR_CERT_DATE_INVALID on Android](https://lemwatch.com/errors/err-cert-date-invalid/on-android)
- [ERR_CERT_DATE_INVALID on Chrome](https://lemwatch.com/errors/err-cert-date-invalid/on-chrome)
- [ERR_CERT_DATE_INVALID on iPhone](https://lemwatch.com/errors/err-cert-date-invalid/on-iphone)
- [ERR_CERT_REVOKED: The certificate was revoked by its issuer](https://lemwatch.com/errors/err-cert-revoked)
- [ERR_CONNECTION_CLOSED: The server closed the connection unexpectedly](https://lemwatch.com/errors/err-connection-closed)
- [ERR_CONNECTION_REFUSED: The server actively refused the connection](https://lemwatch.com/errors/err-connection-refused)
- [ERR_CONNECTION_RESET: The connection was reset mid-transfer](https://lemwatch.com/errors/err-connection-reset)
- [ERR_CONNECTION_TIMED_OUT: The server took too long to respond](https://lemwatch.com/errors/err-connection-timed-out)
- [ERR_CONNECTION_TIMED_OUT on AWS S3](https://lemwatch.com/errors/err-connection-timed-out/in-aws-s3)
- [ERR_CONNECTION_TIMED_OUT on Cloudflare](https://lemwatch.com/errors/err-connection-timed-out/in-cloudflare)
- [ERR_CONNECTION_TIMED_OUT on WordPress](https://lemwatch.com/errors/err-connection-timed-out/in-wordpress)
- [ERR_CONNECTION_TIMED_OUT on Android](https://lemwatch.com/errors/err-connection-timed-out/on-android)
- [ERR_CONNECTION_TIMED_OUT on Chrome](https://lemwatch.com/errors/err-connection-timed-out/on-chrome)
- [ERR_EMPTY_RESPONSE: The server sent no data](https://lemwatch.com/errors/err-empty-response)
- [ERR_HTTP2_PROTOCOL_ERROR: The HTTP/2 stream failed](https://lemwatch.com/errors/err-http2-protocol-error)
- [ERR_INTERNET_DISCONNECTED: The device is not connected to the internet](https://lemwatch.com/errors/err-internet-disconnected)
- [ERR_NAME_NOT_RESOLVED: The hostname could not be resolved](https://lemwatch.com/errors/err-name-not-resolved)
- [ERR_NAME_NOT_RESOLVED on Cloudflare](https://lemwatch.com/errors/err-name-not-resolved/in-cloudflare)
- [ERR_NAME_NOT_RESOLVED on Android](https://lemwatch.com/errors/err-name-not-resolved/on-android)
- [ERR_NAME_NOT_RESOLVED on Chrome](https://lemwatch.com/errors/err-name-not-resolved/on-chrome)
- [ERR_NAME_NOT_RESOLVED on Windows](https://lemwatch.com/errors/err-name-not-resolved/on-windows)
- [ERR_NETWORK_CHANGED: The network changed during the request](https://lemwatch.com/errors/err-network-changed)
- [ERR_QUIC_PROTOCOL_ERROR: The QUIC / HTTP3 connection failed](https://lemwatch.com/errors/err-quic-protocol-error)
- [ERR_SSL_OBSOLETE_VERSION: The site uses an obsolete TLS version](https://lemwatch.com/errors/err-ssl-obsolete-version)
- [ERR_SSL_PROTOCOL_ERROR: The site sent an invalid response](https://lemwatch.com/errors/err-ssl-protocol-error)
- [ERR_SSL_PROTOCOL_ERROR on Cloudflare](https://lemwatch.com/errors/err-ssl-protocol-error/in-cloudflare)
- [ERR_SSL_PROTOCOL_ERROR on Nginx](https://lemwatch.com/errors/err-ssl-protocol-error/in-nginx)
- [ERR_SSL_PROTOCOL_ERROR on WordPress](https://lemwatch.com/errors/err-ssl-protocol-error/in-wordpress)
- [ERR_SSL_PROTOCOL_ERROR on Android](https://lemwatch.com/errors/err-ssl-protocol-error/on-android)
- [ERR_SSL_PROTOCOL_ERROR on Chrome](https://lemwatch.com/errors/err-ssl-protocol-error/on-chrome)
- [ERR_SSL_PROTOCOL_ERROR on iPhone](https://lemwatch.com/errors/err-ssl-protocol-error/on-iphone)
- [ERR_SSL_PROTOCOL_ERROR on Mac](https://lemwatch.com/errors/err-ssl-protocol-error/on-mac)
- [ERR_SSL_PROTOCOL_ERROR on Windows](https://lemwatch.com/errors/err-ssl-protocol-error/on-windows)
- [ERR_SSL_VERSION_OR_CIPHER_MISMATCH: No shared TLS version or cipher suite](https://lemwatch.com/errors/err-ssl-version-or-cipher-mismatch)
- [ERR_SSL_VERSION_OR_CIPHER_MISMATCH on Cloudflare](https://lemwatch.com/errors/err-ssl-version-or-cipher-mismatch/in-cloudflare)
- [ERR_SSL_VERSION_OR_CIPHER_MISMATCH on Nginx](https://lemwatch.com/errors/err-ssl-version-or-cipher-mismatch/in-nginx)
- [ERR_SSL_VERSION_OR_CIPHER_MISMATCH on Chrome](https://lemwatch.com/errors/err-ssl-version-or-cipher-mismatch/on-chrome)
- [ERR_TOO_MANY_REDIRECTS: The page is stuck in a redirect loop](https://lemwatch.com/errors/err-too-many-redirects)
- [ERR_TOO_MANY_REDIRECTS on Cloudflare](https://lemwatch.com/errors/err-too-many-redirects/in-cloudflare)
- [ERR_TOO_MANY_REDIRECTS on Netlify](https://lemwatch.com/errors/err-too-many-redirects/in-netlify)
- [ERR_TOO_MANY_REDIRECTS on Nginx](https://lemwatch.com/errors/err-too-many-redirects/in-nginx)
- [ERR_TOO_MANY_REDIRECTS on Shopify](https://lemwatch.com/errors/err-too-many-redirects/in-shopify)
- [ERR_TOO_MANY_REDIRECTS on WordPress](https://lemwatch.com/errors/err-too-many-redirects/in-wordpress)
- [ERR_TOO_MANY_REDIRECTS on Chrome](https://lemwatch.com/errors/err-too-many-redirects/on-chrome)
- [Error establishing a database connection: WordPress cannot reach its database](https://lemwatch.com/errors/error-establishing-a-database-connection)
- [Error establishing a database connection on Cloudflare](https://lemwatch.com/errors/error-establishing-a-database-connection/in-cloudflare)
- [Error establishing a database connection on WordPress](https://lemwatch.com/errors/error-establishing-a-database-connection/in-wordpress)
- [Server DNS address could not be found: Chrome's plain-English DNS failure message](https://lemwatch.com/errors/server-dns-address-could-not-be-found)
- [SSL handshake failed: The TLS handshake did not complete](https://lemwatch.com/errors/ssl-handshake-failed)
- [White screen of death: A blank page with no error](https://lemwatch.com/errors/white-screen-of-death)
- [White screen of death on WordPress](https://lemwatch.com/errors/white-screen-of-death/in-wordpress)
- [Your connection is not private: Chrome's certificate warning interstitial](https://lemwatch.com/errors/your-connection-is-not-private)
- [Your connection is not private on WordPress](https://lemwatch.com/errors/your-connection-is-not-private/in-wordpress)
- [Your connection is not private on Android](https://lemwatch.com/errors/your-connection-is-not-private/on-android)
- [Your connection is not private on Chrome](https://lemwatch.com/errors/your-connection-is-not-private/on-chrome)
- [Your connection is not private on iPhone](https://lemwatch.com/errors/your-connection-is-not-private/on-iphone)
- [Your connection is not private on Mac](https://lemwatch.com/errors/your-connection-is-not-private/on-mac)
- [Your connection is not private on Windows](https://lemwatch.com/errors/your-connection-is-not-private/on-windows)


## Related

- [HTTP status code reference](https://lemwatch.com/http-status-codes)
- [Free website checks](https://lemwatch.com/tools)
- [All monitoring checks](https://lemwatch.com/features)
