HTTPREF
← Back to status codes

HTTP Status Code

422 Unprocessable Entity

Client Error

The server understood the request format, but the request data could not be processed because of validation or semantic errors.

HTTP status code reference, response example, common causes, fixes, and related status codes.

What does HTTP 422 Unprocessable Entity mean?

HTTP 422 Unprocessable Entity is a status code sent by a server to indicate the result of an HTTP request.

Status codes help browsers, APIs, apps, and backend systems understand whether a request succeeded, failed, was redirected, or needs additional action.

In practice, HTTP 422 Unprocessable Entity usually appears when a server responds under specific request, validation, permission, or infrastructure conditions.

Response example

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json

{
  "errors": {
    "email": "Invalid email address"
  }
}

HTTP example

HTTP/1.1 422 Unprocessable Entity

Common causes

  • Validation errors
  • Missing required business fields
  • Incorrect field values

How to fix it

  • Correct invalid input values
  • Check backend validation rules
  • Return field-specific error messages when possible

Common mistakes

  • Assuming the status code alone explains the full backend issue
  • Ignoring related response headers that add important context
  • Treating temporary errors as permanent failures
  • Retrying too aggressively without checking the cause
  • Debugging the frontend only when the problem is server-side

How browsers and APIs use it

Browsers, APIs, and backend services use HTTP status codes to understand the outcome of a request. Depending on the status code, an application may render content, retry a request, redirect the user, show an error, or trigger a different flow in the client or server.

Developer note

HTTP 422 is very common in modern APIs and form submissions. It usually means your JSON shape is valid, but the actual field values are not.

Client-side example

if (response.status === 422) {
  const errorData = await response.json();
  console.log(errorData.errors);
}

Related status codes