Error map

session_start() Warning: session_start(): Session cannot be started after headers have already been 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.

session_start() — Warning: session_start(): Session cannot be started after headers have already been sent (PHP)session_sta…CORS — CORS Error: No 'Access-Control-Allow-Origin' header is present (API)CORSFailed to serialize user into session — Passport.js: Error: Failed to serialize user into session (Authentication)Failed to serialize…401 — HTTP 401 Unauthorized (HTTP)401session save path — Warning: session_start(): open(/var/lib/php/sessions/sess_x, O_RDWR) failed: Permission denied (PHP)session save pathSession has not been configured — InvalidOperationException: Session has not been configured for this application or request (.NET)Session has not bee…411 — HTTP 411 Length Required (HTTP)411BOM 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)1040ExpiredToken — AWS: ExpiredToken — The security token included in the request is expired (AWS)ExpiredTokenHeaders already sent — Warning: Cannot modify header information - headers already sent (PHP)Headers already sent103 — HTTP 103 Early Hints (HTTP)103AccessDenied — AWS S3: AccessDenied (403) when calling GetObject / PutObject (AWS)AccessDenied403 — HTTP 403 Forbidden (HTTP)403405 — HTTP 405 Method Not Allowed (HTTP)405login_required — OIDC Error: login_required / interaction_required / consent_required (silent authentication failed) (Authentication)login_requiredstate mismatch — OAuth callback error: state mismatch / Unable to verify authorization request state / State cookie was missing (Authentication)state mismatchinvalid csrf token — ForbiddenError: invalid csrf token (EBADCSRFTOKEN) (Authentication)invalid csrf tokenImagePullBackOff — Kubernetes: ImagePullBackOff / ErrImagePull (Kubernetes)ImagePullBackOffAADSTS700016 — Azure AD (Entra ID): AADSTS700016 Application not found in the directory (Azure)AADSTS700016400 — HTTP 400 Bad Request (HTTP)400daemon — Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Docker)daemoninvalid_scope — OAuth 2.0 Error: invalid_scope / insufficient_scope (Authentication)invalid_scopeLaravel storage — Laravel: The stream or file "storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied (PHP)Laravel storageCORS wildcard with credentials — ASP.NET Core: The CORS protocol does not allow specifying a wildcard (any) origin and credentials at the same time (.NET)CORS wildcard with …The request matched multiple endpoints — AmbiguousMatchException: The request matched multiple endpoints. Matches: X, Y (.NET)The request matched…antiforgery token could not be decrypted — ASP.NET Core: The antiforgery token could not be decrypted / The required antiforgery cookie is not present (400 Bad Request) (.NET)antiforgery token c…413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413CSP violation — Refused to load the script because it violates the following Content Security Policy directive (JavaScript)CSP violationparameter_missing — API Error: Missing required parameter (parameter_missing / "x" is required) (API)parameter_missing428 — HTTP 428 Precondition Required (HTTP)428URIError — URIError: URI malformed (JavaScript)URIErrorUnicodeEncodeError — UnicodeEncodeError: 'charmap' codec can't encode character '\u2192' (Python)UnicodeEncodeError505 — HTTP 505 HTTP Version Not Supported (HTTP)505Link expired — WordPress: The link you followed has expired (WordPress)Link expiredfile_type_not_allowed — Upload error: File type not allowed / unsupported file type (API)file_type_not_allow…416 — 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)1035kubectl connection refused — kubectl: The connection to the server localhost:8080 was refused — did you specify the right host or port? (Kubernetes)kubectl connection …NoCredentialsError — AWS: Unable to locate credentials / Could not load credentials from any providers (AWS)NoCredentialsErrorSignatureDoesNotMatch — AWS: SignatureDoesNotMatch / InvalidClientTokenId — the request signature we calculated does not match (AWS)SignatureDoesNotMat…500 — HTTP 500 Internal Server Error (HTTP)500Call to undefined function — PHP Fatal error: Uncaught Error: Call to undefined function (PHP)Call to undefined f…Undefined array key — Warning: Undefined array key / Undefined index (PHP)Undefined array key504 — HTTP 504 Gateway Timeout (HTTP)504524 — Cloudflare Error 524: A Timeout Occurred (Cloudflare)524304 — HTTP 304 Not Modified (HTTP)304

Directly related (12)

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…

Failed to serialize user into sessionAuthentication

Passport.js: Error: Failed to serialize user into session

Passport logged a user in but there’s no serializeUser function (or it didn’t call done), so the session can’t store the user.

401HTTP

HTTP 401 Unauthorized

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

session save pathPHP

Warning: session_start(): open(/var/lib/php/sessions/sess_x, O_RDWR) failed: Permission denied

PHP can’t write session files to the configured session.save_path.

Session has not been configured.NET

InvalidOperationException: Session has not been configured for this application or request

Code used HttpContext.Session, but session services/middleware aren’t registered — or UseSession runs after the endpoint that nee…

411HTTP

HTTP 411 Length Required

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

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…

ExpiredTokenAWS

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

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

Headers already sentPHP

Warning: Cannot modify header information - headers already sent

You called `header()`, `setcookie()` or `session_start()` after output had already been sent to the browser.

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…

Two steps away (36)

AccessDeniedAWS

AWS S3: AccessDenied (403) when calling GetObject / PutObject

An IAM policy, bucket policy, ACL/ownership setting, Block Public Access or KMS key policy denied the S3 request.

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…

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

login_requiredAuthentication

OIDC Error: login_required / interaction_required / consent_required (silent authentication failed)

A silent sign-in (prompt=none, iframe or refresh) couldn’t complete because the user must interact — no session, consent needed,…

state mismatchAuthentication

OAuth callback error: state mismatch / Unable to verify authorization request state / State cookie was missing

The state value returned to the callback doesn’t match what the app stored before redirecting — the CSRF protection for OAuth fai…

invalid csrf tokenAuthentication

ForbiddenError: invalid csrf token (EBADCSRFTOKEN)

The request’s CSRF token is missing or doesn’t match the token tied to the user’s session/cookie.

ImagePullBackOffKubernetes

Kubernetes: ImagePullBackOff / ErrImagePull

The node can’t pull the container image — wrong name/tag, missing registry credentials, or registry unreachable.

AADSTS700016Azure

Azure AD (Entra ID): AADSTS700016 Application not found in the directory

The client ID in your sign-in request doesn’t exist in the tenant you’re authenticating against.

400HTTP

HTTP 400 Bad Request

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

daemonDocker

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

The docker CLI can’t talk to the Docker engine — it isn’t running, or your user can’t access the socket.

invalid_scopeAuthentication

OAuth 2.0 Error: invalid_scope / insufficient_scope

The requested scope is unknown or not allowed for this client — or the token lacks the scope the API endpoint requires.

Laravel storagePHP

Laravel: The stream or file "storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied

The web server can’t write to Laravel’s storage or bootstrap/cache directories.

CORS wildcard with credentials.NET

ASP.NET Core: The CORS protocol does not allow specifying a wildcard (any) origin and credentials at the same time

The CORS policy uses AllowAnyOrigin() together with AllowCredentials(), which browsers forbid.

The request matched multiple endpoints.NET

AmbiguousMatchException: The request matched multiple endpoints. Matches: X, Y

Two controller actions or minimal API endpoints have the same route and HTTP method.

antiforgery token could not be decrypted.NET

ASP.NET Core: The antiforgery token could not be decrypted / The required antiforgery cookie is not present (400 Bad Request)

Form POST failed antiforgery validation — the token is missing, the cookie is missing, or Data Protection keys changed so old tok…

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.

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.

parameter_missingAPI

API Error: Missing required parameter (parameter_missing / "x" is required)

The API rejected the request because a field it requires — in the query string, path, headers or JSON body — wasn’t sent or was e…

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.

UnicodeEncodeErrorPython

UnicodeEncodeError: 'charmap' codec can't encode character '\u2192'

Python tried to write text in an encoding that can’t represent some characters — common in Windows consoles and files opened with…

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…

file_type_not_allowedAPI

Upload error: File type not allowed / unsupported file type

The upload was rejected because the file’s type — extension, MIME type or actual content — isn’t on the allowed list.

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.

kubectl connection refusedKubernetes

kubectl: The connection to the server localhost:8080 was refused — did you specify the right host or port?

kubectl has no usable kubeconfig, so it falls back to localhost:8080 — or the cluster API server is unreachable.

NoCredentialsErrorAWS

AWS: Unable to locate credentials / Could not load credentials from any providers

The AWS CLI/SDK found no credentials in any place it looks — env vars, profile files, SSO cache or an instance/task role.

SignatureDoesNotMatchAWS

AWS: SignatureDoesNotMatch / InvalidClientTokenId — the request signature we calculated does not match

AWS rejected the request signature — wrong secret key, wrong region, clock skew, or a presigned URL used differently from how it…

500HTTP

HTTP 500 Internal Server Error

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

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.

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.

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.