Skip to content

4xx Status Codes

The server cannot process the request due to a client error, such as malformed syntax or invalid framing.

Authentication is required and has failed or has not been provided. The response includes a challenge for authentication.

Reserved for future use, originally intended for digital cash schemes. It’s rarely used but may indicate issues like exceeded API limits or insufficient account funds.

The server understands the request, but refuses to take action due to lack of permissions or authentication failure.

The requested resource could not be found, but it may become available in the future.

The request method is not supported for the requested resource, such as using GET on a POST-only endpoint.

The resource can only generate content not acceptable based on the client’s request headers.

The client must authenticate with the proxy before accessing the resource.

The server timed out waiting for the request. The client may repeat the request later.

The request could not be processed due to a conflict in the resource’s current state.

The resource is no longer available and will not be available again. The client should not request it in the future.

The request did not specify the required content length.

The server does not meet one of the preconditions specified in the request headers.

The request is larger than the server can process.

The provided URI is too long for the server to process, often due to excessive query parameters.

The request entity has a media type that the server does not support.

The client requested a portion of the file that cannot be supplied by the server.

The server cannot meet the requirements of the Expect request-header field.

Defined as a joke in an April Fools’ RFC, this status code indicates a teapot cannot brew coffee.

The request was directed at a server that cannot produce a response, often due to connection reuse.

The request is well-formed but cannot be processed.

The resource being accessed is locked and cannot be modified.

The request failed because it depended on another request that failed.

The server is unwilling to process a request that might be replayed.

The client should switch to a different protocol, as indicated in the Upgrade header.

The server requires the request to be conditional to avoid lost updates.

The user has sent too many requests in a short period, triggering rate limiting.

The server will not process the request due to excessively large header fields.

Access to the resource is denied due to legal demands against it.


Used by Laravel when a CSRF token is missing or has expired.

A deprecated response indicating that a method has failed, used by the Spring Framework.

Returned by the original Twitter API when the client is rate limited. Later versions use the 429 status code.

430 Request Header Fields Too Large (Shopify)

Section titled “430 Request Header Fields Too Large (Shopify)”

A deprecated response used by Shopify to indicate too many URLs requested in a short time.

Indicates that a request was deemed malicious by Shopify.

450 Blocked by Windows Parental Controls (Microsoft)

Section titled “450 Blocked by Windows Parental Controls (Microsoft)”

Indicates that access to the requested webpage is blocked due to Windows Parental Controls.

Returned by ArcGIS for Server to indicate that a token is expired or invalid.

Returned by ArcGIS for Server to indicate that a required token was not submitted.


Microsoft’s IIS web server extends the 4xx error space to handle additional errors related to the client’s request.

The client’s session has expired and requires re-login.

The request cannot be honored because the required information was not provided by the user.

Used in Exchange ActiveSync when a more efficient server is available or the current server cannot access the user’s mailbox. The client should re-run the AutoDiscover operation to find a more suitable server.


Instructs the server to return no information and close the connection immediately.

The client sent a request or header line that is too large for the server to process.

An extension of the 400 Bad Request response, used when the client provided an invalid SSL certificate.

An extension of the 400 Bad Request response, used when a client certificate is required but not provided.

An extension of the 400 Bad Request response, used when an HTTP request is made to a port that expects HTTPS requests.

Indicates that the client closed the request before the server could respond.


The client closed the connection with the load balancer before the idle timeout period elapsed, usually because the client timeout is shorter than the Elastic Load Balancer’s timeout.

The load balancer received an X-Forwarded-For request header containing more than 30 IP addresses.

Indicates that there are incompatible protocol versions between the client and the origin server.