Error map

SSL_do_handshake() failed while SSL handshaking to upstream Nginx: [error] SSL_do_handshake() failed (SSL: error:0A000410:SSL routines::sslv3 alert handshake failure) while SSL handshaking to upstream

Nginx / Apache · layer 3, Edge & web server

Open the full error page →

Centre: this error. First ring: errors it is linked with (8). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.

SSL_do_handshake() failed while SSL handshaking to upstream — Nginx: [error] SSL_do_handshake() failed (SSL: error:0A000410:SSL routines::sslv3 alert handshake failure) while SSL handshaking to upstream (Nginx / Apache)SSL_do_hand…526 — Cloudflare Error 526: Invalid SSL Certificate (Cloudflare)526525 — Cloudflare Error 525: SSL Handshake Failed (Cloudflare)525502 — HTTP 502 Bad Gateway (HTTP)502sslv3 alert handshake failure — OpenSSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure (SSL alert number 40) (SSL / TLS)sslv3 alert handsha…WebSocket connection failed through Nginx (missing Upgrade headers) — Browser: WebSocket connection to 'wss://example.com/socket' failed: Error during WebSocket handshake: Unexpected response code: 400 (nginx proxy) (Nginx / Apache)WebSocket connectio…upstream sent too big header while reading response header — Nginx: [error] upstream sent too big header while reading response header from upstream (502 Bad Gateway) (Nginx / Apache)upstream sent too b…proxy_pass with a URI changes the path (404 from upstream) — Nginx: reverse proxy returns 404 — location /api/ { proxy_pass http://app:3000/; } strips the prefix (or keeps it) (Nginx / Apache)proxy_pass with a U…no resolver defined to resolve example.com — Nginx: [error] no resolver defined to resolve api.example.com, client: 203.0.113.5 (502 when proxy_pass uses a variable) (Nginx / Apache)no resolver defined…520 — Cloudflare Error 520: Web Server Returned an Unknown Error (Cloudflare)520ERR_CERT_DATE_INVALID — NET::ERR_CERT_DATE_INVALID (certificate expired) (JavaScript)ERR_CERT_DATE_INVAL…Cloudflare Origin CA not trusted — NET::ERR_CERT_AUTHORITY_INVALID with a Cloudflare Origin Certificate (record not proxied) (Cloudflare)Cloudflare Origin C…521 — Cloudflare Error 521: Web Server Is Down (Cloudflare)521ERR_SSL_PROTOCOL_ERROR — ERR_SSL_PROTOCOL_ERROR (This site can't provide a secure connection) (JavaScript)ERR_SSL_PROTOCOL_ER…421 — HTTP 421 Misdirected Request (HTTP)421ECONNREFUSED — Error: connect ECONNREFUSED 127.0.0.1:5432 (Node.js)ECONNREFUSED407 — HTTP 407 Proxy Authentication Required (HTTP)407500 — HTTP 500 Internal Server Error (HTTP)500cURL error 35 — cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to host:443 (PHP)cURL error 35SSL_ERROR_NO_CYPHER_OVERLAP — Firefox: Secure Connection Failed — SSL_ERROR_NO_CYPHER_OVERLAP (no common cipher) (Browser)SSL_ERROR_NO_CYPHER…unable to get local issuer certificate — OpenSSL: error:num=20:unable to get local issuer certificate / SSL: CERTIFICATE_VERIFY_FAILED (SSL / TLS)unable to get local…400 — HTTP 400 Bad Request (HTTP)400Cloudflare 502 — Cloudflare-branded 502 Bad Gateway / 504 Gateway Timeout ("cloudflare" footer) (Cloudflare)Cloudflare 502connect() failed (111: Connection refused) while connecting to upstream — Nginx: [error] connect() failed (111: Connection refused) while connecting to upstream, upstream: "http://127.0.0.1:3000/" (Nginx / Apache)connect() failed (1…recv() failed (104: Connection reset by peer) while reading response header — Nginx: [error] recv() failed (104: Connection reset by peer) while reading response header from upstream (Nginx / Apache)recv() failed (104:…FastCGI sent in stderr: PHP message — Nginx: [error] FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysqli_connect()" while reading response header from upstream (Nginx / Apache)FastCGI sent in std…414 Request-URI Too Large / 400 Request Header Or Cookie Too Large — Nginx: 400 Bad Request — Request Header Or Cookie Too Large / client sent too long header line (Nginx / Apache)414 Request-URI Too…404 — HTTP 404 Not Found (HTTP)404405 — HTTP 405 Method Not Allowed (HTTP)405path-to-regexp — TypeError: Missing parameter name at 1 (path-to-regexp) (Node.js)path-to-regexpcURL error 6 — cURL error 6: Could not resolve host: api.example.com (PHP)cURL error 6511 — HTTP 511 Network Authentication Required (HTTP)511sudo: unable to resolve host — sudo: unable to resolve host <hostname>: Name or service not known (Linux)sudo: unable to res…

Directly related (8)

526Cloudflare

Cloudflare Error 526: Invalid SSL Certificate

With SSL mode Full (strict), the origin’s certificate is expired, self-signed, or doesn’t match the hostname.

525Cloudflare

Cloudflare Error 525: SSL Handshake Failed

Cloudflare couldn’t complete a TLS handshake with your origin (SSL mode Full / Full strict).

502HTTP

HTTP 502 Bad Gateway

A proxy or gateway (Nginx, load balancer, CDN) got an invalid response — or no response — from the upstream server behind it.

sslv3 alert handshake failureSSL / TLS

OpenSSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure (SSL alert number 40)

The server aborted the handshake with alert 40 — no acceptable parameters (cipher, signature algorithm, client certificate or SNI…

WebSocket connection failed through Nginx (missing Upgrade headers)Nginx / Apache

Browser: WebSocket connection to 'wss://example.com/socket' failed: Error during WebSocket handshake: Unexpected response code: 400 (nginx proxy)

Nginx isn't forwarding the `Upgrade`/`Connection` headers needed for WebSockets.

upstream sent too big header while reading response headerNginx / Apache

Nginx: [error] upstream sent too big header while reading response header from upstream (502 Bad Gateway)

The backend's response headers (cookies, Set-Cookie, long headers) exceeded Nginx's proxy/fastcgi buffer size.

proxy_pass with a URI changes the path (404 from upstream)Nginx / Apache

Nginx: reverse proxy returns 404 — location /api/ { proxy_pass http://app:3000/; } strips the prefix (or keeps it)

Whether `proxy_pass` has a URI part decides if the matched prefix is stripped, so the backend receives an unexpected path.

no resolver defined to resolve example.comNginx / Apache

Nginx: [error] no resolver defined to resolve api.example.com, client: 203.0.113.5 (502 when proxy_pass uses a variable)

`proxy_pass` with a variable (or `set $upstream`) needs a `resolver`, which isn't configured.

Two steps away (24)

520Cloudflare

Cloudflare Error 520: Web Server Returned an Unknown Error

Cloudflare connected to your origin, but the origin returned an empty, unknown or invalid response.

ERR_CERT_DATE_INVALIDJavaScript

NET::ERR_CERT_DATE_INVALID (certificate expired)

The site’s certificate has expired (or isn’t valid yet) — or the device clock is wrong.

Cloudflare Origin CA not trustedCloudflare

NET::ERR_CERT_AUTHORITY_INVALID with a Cloudflare Origin Certificate (record not proxied)

Cloudflare Origin CA certificates are only trusted by Cloudflare — visitors reaching the origin directly (grey-cloud record, dire…

521Cloudflare

Cloudflare Error 521: Web Server Is Down

Cloudflare couldn’t connect to your origin — the connection was refused.

ERR_SSL_PROTOCOL_ERRORJavaScript

ERR_SSL_PROTOCOL_ERROR (This site can't provide a secure connection)

The browser couldn’t negotiate TLS — the server sent an invalid response, often plain HTTP on the HTTPS port.

421HTTP

HTTP 421 Misdirected Request

The request reached a server that isn’t configured for that host name — usually HTTP/2 connection reuse across domains sharing a…

ECONNREFUSEDNode.js

Error: connect ECONNREFUSED 127.0.0.1:5432

Nothing is listening at that host:port — the target service is down or you’re connecting to the wrong address.

407HTTP

HTTP 407 Proxy Authentication Required

A proxy between you and the server requires credentials before it will forward your request.

500HTTP

HTTP 500 Internal Server Error

The server hit an unexpected condition — usually an unhandled exception or misconfiguration in the application.

cURL error 35PHP

cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to host:443

The TLS handshake failed — protocol/cipher mismatch, a proxy interfering, or the server closed the connection.

SSL_ERROR_NO_CYPHER_OVERLAPBrowser

Firefox: Secure Connection Failed — SSL_ERROR_NO_CYPHER_OVERLAP (no common cipher)

Firefox and the server share no TLS cipher suite, so the secure handshake cannot even start.

unable to get local issuer certificateSSL / TLS

OpenSSL: error:num=20:unable to get local issuer certificate / SSL: CERTIFICATE_VERIFY_FAILED

The client could not build a chain from the server's certificate to a CA it trusts — the issuer is missing locally or the server…

400HTTP

HTTP 400 Bad Request

The server could not understand the request because its syntax, headers or body are malformed or invalid.

Cloudflare 502Cloudflare

Cloudflare-branded 502 Bad Gateway / 504 Gateway Timeout ("cloudflare" footer)

A plain-looking 502/504 page with “cloudflare” at the bottom comes from Cloudflare’s network itself (or an origin response it cou…

connect() failed (111: Connection refused) while connecting to upstreamNginx / Apache

Nginx: [error] connect() failed (111: Connection refused) while connecting to upstream, upstream: "http://127.0.0.1:3000/"

Nginx tried to proxy a request but nothing listens on the upstream address, so the client gets 502.

recv() failed (104: Connection reset by peer) while reading response headerNginx / Apache

Nginx: [error] recv() failed (104: Connection reset by peer) while reading response header from upstream

The upstream (PHP-FPM, Node, Gunicorn) closed the connection abruptly while Nginx waited for the response.

FastCGI sent in stderr: PHP messageNginx / Apache

Nginx: [error] FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysqli_connect()" while reading response header from upstream

PHP wrote an error to stderr while handling the request, so Nginx logs it (often a 500/502 follows).

414 Request-URI Too Large / 400 Request Header Or Cookie Too LargeNginx / Apache

Nginx: 400 Bad Request — Request Header Or Cookie Too Large / client sent too long header line

The request line or headers (often cookies) exceed `large_client_header_buffers`.

404HTTP

HTTP 404 Not Found

The server can’t find anything at the requested URL.

405HTTP

HTTP 405 Method Not Allowed

The URL exists, but it doesn’t accept the HTTP method you used (e.g. POST to a GET-only route).

path-to-regexpNode.js

TypeError: Missing parameter name at 1 (path-to-regexp)

An Express 5 (path-to-regexp v8) route uses old wildcard syntax like '*' or '/:id?'.

cURL error 6PHP

cURL error 6: Could not resolve host: api.example.com

PHP cURL couldn’t resolve the hostname via DNS.

511HTTP

HTTP 511 Network Authentication Required

A captive portal (hotel, airport, office Wi-Fi) is intercepting your traffic until you log in or accept its terms.

sudo: unable to resolve hostLinux

sudo: unable to resolve host <hostname>: Name or service not known

The machine’s hostname isn’t in /etc/hosts (or DNS), so sudo prints this warning — usually after changing the hostname.