422
Средняя важность — нужна диагностика

Ошибка 422 — Прочая техника и сервисы

Что это значит

Код 422 (Unprocessable Entity) в протоколе HTTP означает, что сервер понимает запрос клиента, но не может его обработать из-за семантических ошибок в данных. В отличие от 400 Bad Request, тело запроса синтаксически корректно, но его содержимое не соответствует требованиям сервера (например, невалидный JSON, нарушение бизнес-правил, неверный формат поля). Пользователь видит сообщение об ошибке, часто с указанием конкретного поля, вызвавшего проблему. В API-сервисах это стандартный ответ при валидации входных данных.

Вероятные причины

  • Некорректный формат данных в теле запроса (например, невалидный JSON/XML)
  • Отсутствие обязательного поля в запросе
  • Несоответствие типа данных (ожидалось число, передана строка)
  • Нарушение бизнес-правил (например, дата начала позже даты окончания)
  • Превышение допустимой длины строкового поля
  • Неверное значение enum (передано значение, не входящее в список допустимых)
  • Некорректная кодировка символов
  • Попытка создать дубликат уникального ресурса

Что делать — по порядку

  1. Проверьте тело запроса на соответствие документации API (схема, обязательные поля, типы данных)
  2. Убедитесь, что Content-Type заголовка соответствует формату тела (application/json, application/xml и т.д.)
  3. Валидируйте JSON с помощью онлайн-валидатора или парсера
  4. Проверьте значения полей на соответствие бизнес-правилам (диапазоны, зависимости)
  5. Убедитесь, что все переданные enum-значения входят в список допустимых
  6. Проверьте длину строковых полей (обычно ограничение 255 или 1024 символа)
  7. Если ошибка возникает при создании ресурса, проверьте, не существует ли уже ресурс с такими же уникальными полями
  8. Обратитесь к логам сервера для получения детального сообщения об ошибке

Нажимайте на пункты, чтобы отмечать выполненные.

Частые вопросы

Что означает ошибка 422?

Ошибка 422 (Unprocessable Entity) означает, что сервер не может обработать запрос из-за ошибок в данных, хотя сам запрос синтаксически корректен.

Чем отличается 422 от 400?

400 Bad Request — синтаксическая ошибка в запросе (например, битый JSON). 422 — синтаксис верен, но данные семантически неверны (например, неверный формат даты).

Как исправить ошибку 422?

Проверьте тело запроса на соответствие документации API: обязательные поля, типы данных, допустимые значения. Используйте валидатор JSON.

Почему возникает 422 при отправке формы?

Скорее всего, одно из полей содержит недопустимое значение (например, email без @, число вместо текста). Проверьте каждое поле.

Может ли 422 быть из-за CORS?

Нет, CORS вызывает ошибки 4xx или 5xx, но не 422. 422 связана с содержимым тела запроса.