Error map

Headers already sent Warning: Cannot modify header information - headers already sent

PHP · layer 4, Application & API

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.

Headers already sent — Warning: Cannot modify header information - headers already sent (PHP)Headers alr…500 — HTTP 500 Internal Server Error (HTTP)500Undefined array key — Warning: Undefined array key / Undefined index (PHP)Undefined array keyCall to undefined function — PHP Fatal error: Uncaught Error: Call to undefined function (PHP)Call to undefined f…session_start() — Warning: session_start(): Session cannot be started after headers have already been sent (PHP)session_start()Not a valid JSON response — WordPress: Updating failed. The response is not a valid JSON response. (WordPress)Not a valid JSON re…BOM output — Unexpected characters at the top of the page / headers already sent by BOM (PHP)BOM output100 — HTTP 100 Continue (HTTP)1001040 — Cloudflare Error 1040 / 1041: Invalid request header modification (Cloudflare)1040CSP violation — Refused to load the script because it violates the following Content Security Policy directive (JavaScript)CSP violation103 — HTTP 103 Early Hints (HTTP)103Cookies are blocked — WordPress login: Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress. (WordPress)Cookies are blockedERR_HTTP_HEADERS_SENT — Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (Node.js)ERR_HTTP_HEADERS_SE…404 — HTTP 404 Not Found (HTTP)404502 — HTTP 502 Bad Gateway (HTTP)502503 — HTTP 503 Service Unavailable (HTTP)503TypeError — TypeError: Cannot read properties of undefined (reading 'x') (JavaScript)TypeErrorKeyError — KeyError: 'x' (Python)KeyErrorArrayIndexOutOfBoundsException — java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 (Java)ArrayIndexOutOfBoun…Class not found — PHP Fatal error: Uncaught Error: Class "X" not found (PHP)Class not foundCritical error — WordPress: There Has Been a Critical Error on This Website (WordPress)Critical errorCannot redeclare — Fatal error: Cannot redeclare function foo() (previously declared in …) (PHP)Cannot redeclareExpiredToken — AWS: ExpiredToken — The security token included in the request is expired (AWS)ExpiredToken401 — HTTP 401 Unauthorized (HTTP)401CORS — CORS Error: No 'Access-Control-Allow-Origin' header is present (API)CORS403 — HTTP 403 Forbidden (HTTP)403SyntaxError: JSON — SyntaxError: Unexpected token < in JSON at position 0 (JavaScript)SyntaxError: JSONAre you sure you want to do this? — WordPress: Are you sure you want to do this? Please try again. (nonce check failed) (WordPress)Are you sure you wa…411 — HTTP 411 Length Required (HTTP)411428 — HTTP 428 Precondition Required (HTTP)428URIError — URIError: URI malformed (JavaScript)URIError413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413505 — HTTP 505 HTTP Version Not Supported (HTTP)505Link expired — WordPress: The link you followed has expired (WordPress)Link expired416 — HTTP 416 Range Not Satisfiable (HTTP)416417 — HTTP 417 Expectation Failed (HTTP)4171035 — Cloudflare Error 1035 / 1036: Invalid request rewrite (invalid URI path / query string) (Cloudflare)1035Mixed Content — Mixed Content: The page was loaded over HTTPS, but requested an insecure resource (API)Mixed Contentblocked a frame — SecurityError: Blocked a frame with origin "x" from accessing a cross-origin frame. (JavaScript)blocked a frameScript error. — Script error. (at line 0) — cross-origin error details hidden (JavaScript)Script error.504 — HTTP 504 Gateway Timeout (HTTP)504524 — Cloudflare Error 524: A Timeout Occurred (Cloudflare)524304 — HTTP 304 Not Modified (HTTP)304431 — HTTP 431 Request Header Fields Too Large (HTTP)431ERR_TOO_MANY_REDIRECTS (WordPress) — WordPress: ERR_TOO_MANY_REDIRECTS / redirected you too many times on wp-admin or the whole site (WordPress)ERR_TOO_MANY_REDIRE…404 except homepage — WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules) (WordPress)404 except homepageMODULE_NOT_FOUND — Error: Cannot find module 'x' (MODULE_NOT_FOUND) (Node.js)MODULE_NOT_FOUNDSyntaxError import — SyntaxError: Cannot use import statement outside a module (Node.js)SyntaxError importDEP0005 — DeprecationWarning: Buffer() is deprecated due to security and usability issues (DEP0005) (Node.js)DEP0005

Directly related (12)

500HTTP

HTTP 500 Internal Server Error

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

Undefined array keyPHP

Warning: Undefined array key / Undefined index

Your code reads an array key that doesn’t exist — common with `$_GET`, `$_POST` and decoded JSON.

Call to undefined functionPHP

PHP Fatal error: Uncaught Error: Call to undefined function

PHP can’t find the function you called — usually a missing extension, missing include, or namespace issue.

session_start()PHP

Warning: session_start(): Session cannot be started after headers have already been sent

session_start() ran after output was sent, so PHP can’t set the session cookie.

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…

BOM outputPHP

Unexpected characters at the top of the page / headers already sent by BOM

A UTF-8 byte-order mark (BOM) at the start of a PHP file is sent as output, breaking headers, JSON and images.

100HTTP

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.

1040Cloudflare

Cloudflare Error 1040 / 1041: Invalid request header modification

A Transform Rule tried to set or remove a request header that Cloudflare doesn’t allow to be modified, or produced an invalid val…

CSP violationJavaScript

Refused to load the script because it violates the following Content Security Policy directive

The page’s Content-Security-Policy doesn’t allow that script, style, image or connection source.

103HTTP

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…

Cookies are blockedWordPress

WordPress login: Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

WordPress’s test cookie wasn’t returned on login — often a siteurl/home or domain mismatch, caching of wp-login.php, or headers a…

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.

Two steps away (36)

404HTTP

HTTP 404 Not Found

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

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.

503HTTP

HTTP 503 Service Unavailable

The server is temporarily unable to handle the request — overloaded, in maintenance, or has no healthy backends.

TypeErrorJavaScript

TypeError: Cannot read properties of undefined (reading 'x')

You tried to access a property on a value that is `undefined` (or `null`) — usually data that hasn’t loaded yet or a wrong proper…

KeyErrorPython

KeyError: 'x'

You accessed a dictionary key that doesn’t exist.

ArrayIndexOutOfBoundsExceptionJava

java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5

Code accessed an array index outside 0 … length-1.

Class not foundPHP

PHP Fatal error: Uncaught Error: Class "X" not found

PHP couldn’t load the class — autoloading failed, the namespace is wrong, or the dependency isn’t installed.

Critical errorWordPress

WordPress: There Has Been a Critical Error on This Website

A PHP fatal error (usually from a plugin or theme) stopped WordPress; the real error is in the debug log or recovery-mode email.

Cannot redeclarePHP

Fatal error: Cannot redeclare function foo() (previously declared in …)

The same function (or class) was defined twice — usually a file included more than once.

ExpiredTokenAWS

AWS: ExpiredToken — The security token included in the request is expired

Temporary AWS credentials (STS/SSO/assumed role) have expired.

401HTTP

HTTP 401 Unauthorized

The request has no valid authentication credentials — you need to log in or send a valid token.

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…

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…

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.

Are you sure you want to do this?WordPress

WordPress: Are you sure you want to do this? Please try again. (nonce check failed)

A WordPress security nonce didn’t validate — the page was open too long, cached, or a plugin/theme form is broken.

411HTTP

HTTP 411 Length Required

The server refuses a request with a body but no Content-Length header.

428HTTP

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.

URIErrorJavaScript

URIError: URI malformed

decodeURIComponent/decodeURI received an invalid percent-encoded sequence.

413HTTP

HTTP 413 Content Too Large (Request Entity Too Large)

The request body is bigger than the server is willing to accept — usually a file upload over the configured limit.

505HTTP

HTTP 505 HTTP Version Not Supported

The server doesn’t support the HTTP protocol version used in the request.

Link expiredWordPress

WordPress: The link you followed has expired

Usually an upload (theme, plugin, media) larger than PHP’s upload/post limits — WordPress receives an empty request and shows thi…

416HTTP

HTTP 416 Range Not Satisfiable

The client asked for a byte range (Range: bytes=…) that lies outside the file — usually a resumed download of a file that changed…

417HTTP

HTTP 417 Expectation Failed

The server or a proxy can’t meet the Expect header in the request — almost always Expect: 100-continue.

1035Cloudflare

Cloudflare Error 1035 / 1036: Invalid request rewrite (invalid URI path / query string)

A Transform Rule (URL rewrite) produced an invalid path or query string.

Mixed ContentAPI

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.

blocked a frameJavaScript

SecurityError: Blocked a frame with origin "x" from accessing a cross-origin frame.

Script tried to read or modify an iframe (or window) from another origin.

Script error.JavaScript

Script error. (at line 0) — cross-origin error details hidden

An error happened in a script from another origin, and the browser hid the details.

504HTTP

HTTP 504 Gateway Timeout

A proxy or gateway waited too long for the upstream server to respond and gave up.

524Cloudflare

Cloudflare Error 524: A Timeout Occurred

Cloudflare connected to the origin, but the origin didn’t send an HTTP response within 100 seconds.

304HTTP

HTTP 304 Not Modified

The cached copy is still valid, so the server sends no body and the client reuses its cache.

431HTTP

HTTP 431 Request Header Fields Too Large

The request headers — almost always cookies — exceed the server’s size limit.

ERR_TOO_MANY_REDIRECTS (WordPress)WordPress

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…

404 except homepageWordPress

WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules)

Pretty permalinks aren’t being routed to index.php — .htaccess is missing/ignored (Apache) or Nginx lacks try_files.

MODULE_NOT_FOUNDNode.js

Error: Cannot find module 'x' (MODULE_NOT_FOUND)

Node can’t resolve the module path — the package isn’t installed, or a relative path/extension is wrong.

SyntaxError importNode.js

SyntaxError: Cannot use import statement outside a module

An `import` statement ran in a context treated as CommonJS (Node without "type": "module", a browser script without type="module"…

DEP0005Node.js

DeprecationWarning: Buffer() is deprecated due to security and usability issues (DEP0005)

Code (yours or a dependency) uses the deprecated new Buffer() constructor.