Error map

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 · layer 3, Edge & web server

Open the full error page →

Centre: this error. First ring: errors it is linked with (12). 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.

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 …404 — HTTP 404 Not Found (HTTP)404path-to-regexp — TypeError: Missing parameter name at 1 (path-to-regexp) (Node.js)path-to-regexp1019 — Cloudflare Error 1019: Compute server error (Workers) (Cloudflare)1019Network is unreachable — connect: Network is unreachable (ENETUNREACH) (Linux)Network is unreacha…default backend - 404 — Ingress returns "404 Not Found" / "default backend - 404" (ingress-nginx) (Kubernetes)default backend - 4…rest_no_route — WordPress REST API: {"code":"rest_no_route","message":"No route was found matching the URL and request method."} (WordPress)rest_no_route405 — HTTP 405 Method Not Allowed (HTTP)405SSL_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_handshake() …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…connect() 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…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…403 — HTTP 403 Forbidden (HTTP)403410 — HTTP 410 Gone (HTTP)410SyntaxError: JSON — SyntaxError: Unexpected token < in JSON at position 0 (JavaScript)SyntaxError: JSONWhitelabel Error Page — Whitelabel Error Page — This application has no explicit mapping for /error (Java)Whitelabel Error Pa…ERR_HTTP_HEADERS_SENT — Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (Node.js)ERR_HTTP_HEADERS_SE…req.body undefined — Express: req.body is undefined / {} (body parser missing) (Node.js)req.body undefinedNo routes matched — No routes matched location "/x" (React)No routes matchedNextRouter was not mounted — Error: NextRouter was not mounted. (React)NextRouter was not …Cannot GET — API Error: Cannot GET /api/... / No route matches / The route could not be found (API)Cannot GETECONNRESET — Error: socket hang up / read ECONNRESET (API)ECONNRESETENOTFOUND — Error: getaddrinfo ENOTFOUND host / Name or service not known (API)ENOTFOUNDssh port 22 Connection refused — ssh: connect to host x port 22: Connection refused (Linux)ssh port 22 Connect…CannotPullContainerError — ECS task stopped: CannotPullContainerError: pull image manifest has been retried ... / ref pull has been retried (AWS)CannotPullContainer…no endpoints — Service has no endpoints (no endpoints available for service / Endpoints: <none>) (Kubernetes)no endpointsDNS in pod — DNS not working inside a Kubernetes pod (could not resolve host / nslookup: can't resolve) (Kubernetes)DNS in podNot a valid JSON response — WordPress: Updating failed. The response is not a valid JSON response. (WordPress)Not a valid JSON re…rest_forbidden — WordPress REST API: {"code":"rest_forbidden","message":"Sorry, you are not allowed to do that."} (401/403) (WordPress)rest_forbiddenThe REST API encountered an error — Site Health: The REST API encountered an error / Your site could not complete a loopback request (cURL error 28) (WordPress)The REST API encoun…400 — HTTP 400 Bad Request (HTTP)400CORS — CORS Error: No 'Access-Control-Allow-Origin' header is present (API)CORS501 — HTTP 501 Not Implemented (HTTP)501502 — HTTP 502 Bad Gateway (HTTP)502525 — Cloudflare Error 525: SSL Handshake Failed (Cloudflare)525526 — Cloudflare Error 526: Invalid SSL Certificate (Cloudflare)526Cloudflare 502 — Cloudflare-branded 502 Bad Gateway / 504 Gateway Timeout ("cloudflare" footer) (Cloudflare)Cloudflare 502recv() 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…no live upstreams while connecting to upstream — Nginx: [error] no live upstreams while connecting to upstream (503/502) (Nginx / Apache)no live upstreams w…upstream prematurely closed connection while reading response header — Nginx: [error] upstream prematurely closed connection while reading response header from upstream (Nginx / Apache)upstream prematurel…nginx: host not found in upstream — Nginx: nginx: [emerg] host not found in upstream "app" in /etc/nginx/conf.d/default.conf:5 (Nginx / Apache)nginx: host not fou…407 — HTTP 407 Proxy Authentication Required (HTTP)407cURL error 6 — cURL error 6: Could not resolve host: api.example.com (PHP)cURL error 6511 — HTTP 511 Network Authentication Required (HTTP)511

Directly related (12)

404HTTP

HTTP 404 Not Found

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

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?'.

1019Cloudflare

Cloudflare Error 1019: Compute server error (Workers)

A Cloudflare Worker routed the request to a loop or hit an internal compute error.

Network is unreachableLinux

connect: Network is unreachable (ENETUNREACH)

The host has no route to the destination network — no default gateway, interface down, or trying IPv6 without IPv6 connectivity.

default backend - 404Kubernetes

Ingress returns "404 Not Found" / "default backend - 404" (ingress-nginx)

The ingress controller received the request but no Ingress rule matched the host/path, so it answered with its default backend.

rest_no_routeWordPress

WordPress REST API: {"code":"rest_no_route","message":"No route was found matching the URL and request method."}

The REST endpoint doesn’t exist for that URL and HTTP method — wrong namespace/route, plugin not active, or route registered too…

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).

SSL_do_handshake() failed while SSL handshaking to upstreamNginx / Apache

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

Nginx couldn't complete TLS to an HTTPS backend (`proxy_pass https://...`), so clients get 502.

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.

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.

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 (34)

403HTTP

HTTP 403 Forbidden

The server understood the request but refuses to authorize it — you (or the server process) are not allowed to access this resour…

410HTTP

HTTP 410 Gone

The resource used to exist but was intentionally and permanently removed, with no forwarding address.

SyntaxError: JSONJavaScript

SyntaxError: Unexpected token < in JSON at position 0

`JSON.parse()` / `response.json()` received something that isn’t JSON — very often an HTML error page.

Whitelabel Error PageJava

Whitelabel Error Page — This application has no explicit mapping for /error

Spring Boot’s default error page — the request hit no controller mapping (404) or a controller threw (500).

ERR_HTTP_HEADERS_SENTNode.js

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

An Express/Node handler tried to send a second response (or set headers) after one was already sent.

req.body undefinedNode.js

Express: req.body is undefined / {} (body parser missing)

Express didn’t parse the request body because no body-parsing middleware matched the request’s Content-Type.

No routes matchedReact

No routes matched location "/x"

React Router found no route definition for the current URL.

NextRouter was not mountedReact

Error: NextRouter was not mounted.

next/router’s useRouter was used inside the App Router (app/ directory), which uses next/navigation instead.

Cannot GETAPI

API Error: Cannot GET /api/... / No route matches / The route could not be found

The server has no route for this URL and HTTP method combination — the endpoint path, API version prefix or method is wrong.

ECONNRESETAPI

Error: socket hang up / read ECONNRESET

The other side closed the TCP connection abruptly while your client was still using it.

ENOTFOUNDAPI

Error: getaddrinfo ENOTFOUND host / Name or service not known

DNS lookup for the hostname failed — the name is wrong, doesn’t exist, or this machine can’t resolve it.

ssh port 22 Connection refusedLinux

ssh: connect to host x port 22: Connection refused

The server answered, but nothing is listening on the SSH port — sshd isn’t running, it uses another port, or a firewall actively…

CannotPullContainerErrorAWS

ECS task stopped: CannotPullContainerError: pull image manifest has been retried ... / ref pull has been retried

The ECS task couldn’t pull its image — no network route to the registry, missing ECR permissions, or a wrong image tag.

no endpointsKubernetes

Service has no endpoints (no endpoints available for service / Endpoints: <none>)

The Service’s selector matches no ready pods, so traffic to it is refused or returns 503.

DNS in podKubernetes

DNS not working inside a Kubernetes pod (could not resolve host / nslookup: can't resolve)

Pods can’t resolve service names or external hosts — CoreDNS is down, blocked by NetworkPolicy, or the upstream resolver fails.

Not a valid JSON responseWordPress

WordPress: Updating failed. The response is not a valid JSON response.

The block editor saved via the REST API but got HTML or an error page back — broken permalinks, a security plugin/WAF, or PHP out…

rest_forbiddenWordPress

WordPress REST API: {"code":"rest_forbidden","message":"Sorry, you are not allowed to do that."} (401/403)

The REST request isn’t authenticated or the user lacks the capability required by the route’s permission_callback.

The REST API encountered an errorWordPress

Site Health: The REST API encountered an error / Your site could not complete a loopback request (cURL error 28)

WordPress couldn’t call itself over HTTP — needed for the block editor, cron, plugin/theme editors and Site Health.

400HTTP

HTTP 400 Bad Request

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

CORSAPI

CORS Error: No 'Access-Control-Allow-Origin' header is present

The browser blocked a cross-origin request because the server’s response didn’t include the CORS headers allowing your site’s ori…

501HTTP

HTTP 501 Not Implemented

The server doesn’t support the functionality (usually the HTTP method) needed to fulfil the request.

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.

525Cloudflare

Cloudflare Error 525: SSL Handshake Failed

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

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.

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…

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`.

no live upstreams while connecting to upstreamNginx / Apache

Nginx: [error] no live upstreams while connecting to upstream (503/502)

All servers in an `upstream` group are marked unavailable, so Nginx has nothing to proxy to.

upstream prematurely closed connection while reading response headerNginx / Apache

Nginx: [error] upstream prematurely closed connection while reading response header from upstream

The backend ended the connection before sending a complete response header.

nginx: host not found in upstreamNginx / Apache

Nginx: nginx: [emerg] host not found in upstream "app" in /etc/nginx/conf.d/default.conf:5

Nginx couldn't resolve the hostname in an `upstream`/`proxy_pass` at startup.

407HTTP

HTTP 407 Proxy Authentication Required

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

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.