Error map
301 HTTP 301 Moved Permanently
HTTP · layer 2, Network
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.
Directly related (12)
HTTP 404 Not Found
The server can’t find anything at the requested URL.
HTTP 302 Found (Temporary Redirect)
The resource is temporarily at another URL; clients should keep using the original URL for future requests.
Cloudflare Error 520: Web Server Returned an Unknown Error
Cloudflare connected to your origin, but the origin returned an empty, unknown or invalid response.
HTTP 304 Not Modified
The cached copy is still valid, so the server sends no body and the client reuses its cache.
HTTP 508 Loop Detected (Resource Limit Is Reached)
Either the server detected an infinite loop (WebDAV) or — much more often — a cPanel/CloudLinux host is saying your account hit i…
ERR_TOO_MANY_REDIRECTS with Cloudflare (Flexible SSL redirect loop)
The page redirects to itself forever — classic cause: Cloudflare SSL mode “Flexible” while the origin redirects HTTP to HTTPS.
Webhook delivery failed (endpoint returned non-2xx / timed out)
The provider tried to send a webhook to your endpoint but didn’t get a timely 2xx response, so it marks the delivery failed and r…
HTTP 410 Gone
The resource used to exist but was intentionally and permanently removed, with no forwarding address.
Mixed Content: The page was loaded over HTTPS, but requested an insecure resource
An HTTPS page tried to load a script, API or image over plain HTTP, and the browser blocked (or warned about) it.
HTTP 303 See Other
A redirect telling the client to fetch the result from another URL with GET — used after a form POST so refreshing doesn’t resubm…
HTTP 307 Temporary Redirect
A temporary redirect that keeps the original method and body — a POST stays a POST at the new URL.
400 Bad Request: The plain HTTP request was sent to HTTPS port (Nginx 497)
Plain http:// traffic arrived on a port Nginx expects to be TLS (443 or a custom SSL port).
Two steps away (36)
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…
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).
SyntaxError: Unexpected token < in JSON at position 0
`JSON.parse()` / `response.json()` received something that isn’t JSON — very often an HTML error page.
HTTP 401 Unauthorized
The request has no valid authentication credentials — you need to log in or send a valid token.
HTTP 200 OK (but something is still wrong)
The request succeeded at the HTTP level — yet the page is blank, the data is wrong, or an error is hidden inside the response bod…
HTTP 308 Permanent Redirect
A permanent redirect that, unlike 301, guarantees the method and body are kept.
HTTP 500 Internal Server Error
The server hit an unexpected condition — usually an unhandled exception or misconfiguration in the application.
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.
Cloudflare Error 521: Web Server Is Down
Cloudflare couldn’t connect to your origin — the connection was refused.
HTTP 412 Precondition Failed
A conditional request header (If-Match, If-Unmodified-Since) didn’t match the current state of the resource.
HTTP 428 Precondition Required
The server requires a conditional request (If-Match / If-Unmodified-Since) to prevent lost updates, and you didn’t send one.
ERROR: canceling statement due to statement timeout
A query ran longer than statement_timeout and PostgreSQL cancelled it.
HTTP 429 Too Many Requests
You’ve hit a rate limit — too many requests in a given time window. Slow down and retry later.
HTTP 503 Service Unavailable
The server is temporarily unable to handle the request — overloaded, in maintenance, or has no healthy backends.
MySQL ERROR 1040 (08004): Too many connections
MySQL reached `max_connections` and refuses new clients.
Cloudflare Error 525: SSL Handshake Failed
Cloudflare couldn’t complete a TLS handshake with your origin (SSL mode Full / Full strict).
ERR_SSL_VERSION_OR_CIPHER_MISMATCH on a Cloudflare site (certificate not issued / multi-level subdomain)
Cloudflare has no edge certificate for the hostname — the Universal SSL cert is still pending, or the hostname is a second-level…
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…
HTTP 504 Gateway Timeout
A proxy or gateway waited too long for the upstream server to respond and gave up.
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…
Webhook signature verification failed (Stripe, Razorpay, GitHub…)
Your endpoint computed a different HMAC signature than the one the provider sent, so the webhook is rejected.
HTTP 400 Bad Request
The server could not understand the request because its syntax, headers or body are malformed or invalid.
API Error: No such object / resource_missing (resource not found by ID)
The endpoint exists, but the ID you passed — in the URL or as a reference in the body — doesn’t match any record the caller can s…
API Error: Invalid or unsupported API version
The API version you requested — in the URL, a header or the SDK config — doesn’t exist or has been retired.
TypeError: Failed to fetch / NetworkError when attempting to fetch resource
The browser couldn’t complete the request at the network level — CORS, DNS, offline, blocked mixed content, or the server refused…
CLEARTEXT communication to host not permitted by network security policy
Android 9+ blocks plain `http://` requests by default; the app tried to call a non-HTTPS URL.
App Transport Security has blocked a cleartext HTTP resource load
iOS blocked an `http://` request (or a weak-TLS HTTPS one) because App Transport Security requires secure connections.
HTTP 100 Continue
An interim response telling the client to go ahead and send the request body — normal when the client sent Expect: 100-continue.
HTTP 103 Early Hints
An interim response that sends Link headers early so the browser can preload CSS, fonts or scripts while the server is still buil…
WordPress: ERR_TOO_MANY_REDIRECTS / redirected you too many times on wp-admin or the whole site
WordPress and the server/proxy keep redirecting to each other — usually siteurl/home mismatch (http vs https, www vs non-www) or…
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…
Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date
Kestrel was told to listen on HTTPS but has no certificate — the ASP.NET Core dev certificate is missing/expired, or production d…
Chrome: This page isn’t working — example.com redirected you too many times. ERR_TOO_MANY_REDIRECTS
The page keeps redirecting to itself or in a loop, so the browser gives up after about 20 redirects.
FastCGI sent in stderr: "Primary script unknown"
Nginx passed a script path to PHP-FPM that PHP-FPM couldn’t find — usually a wrong SCRIPT_FILENAME or root.
Nginx 444 No Response (connection closed without response)
An Nginx-specific code: the server deliberately closed the connection without sending anything — a rule is dropping the request.
Nginx 400: The SSL certificate error (495 / 496 client certificate)
Nginx rejected the request because the client certificate was invalid (495) or missing (496) on a site that requires mutual TLS.
Map another error
Popular: 4035004000xC000007BTypeErrorCritical error404NullPointerException