Помилка 422: що це, причини появи, як запобігти?

Все йшло гладко: код пушиться, API мовчки обробляє запити. І тут — помилка 422. Що це взагалі за химерна комбінація цифр?
Ця помилка — не така популярна, як, скажімо, 404 чи 500. Але якщо працюєш з REST API, фронтом або беком — рано чи пізно з нею точно перетнешся.
Що таке помилка HTTP 422?
422 Unprocessable Content — це ситуація, коли сервер ніби все зрозумів, але обробити запит не може.
Це одна з помилок із категорії 4XX — тобто проблема на стороні клієнта (не сервер впав, а саме запит надійшов «кривенький»).
Що може викликати помилку 422?
Помилка 422 виникає через семантичну проблему в запиті, коли дані наче передані, але не підходять за змістом. Наприклад, у формі реєстрації могли бути заповнені не ті поля, дані не пройшли валідацію, або ж десь на бекенді пошкодилась таблиця в базі даних.
Розберемо на прикладі:
Уяви, що на сайті є форма реєстрації. Користувач вводить логін, email і, скажімо, номер телефону. Натискає «Зареєструватися» — і сервер отримує запит у форматі XML:
<user>
<username>alex_1990</username>
<email>alex@example.com</email>
<phone>zero-nine-eight</phone>
</user>
Сервер очікує, що номер телефону буде записаний цифрами, наприклад 0981234567. А отримав текст — zero-nine-eight. Він не знає, як це обробити, і повертає відповідь:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Може бути ще одна причина — наприклад, логін alex_1990 вже зайнятий, і сервер блокує дублікати. Обидва випадки — приклад семантичної помилки: запит на вигляд правильний, але його зміст порушує правила, які встановлені на бекенді.
Як усунути помилку 422?
Перш ніж узятися до усунення проблеми, потрібно знайти її причину. Для цього можеш пройтись по цих пунктах:
- Перевір статус HTTP
Можеш скористатися інструментом для перевірки статусів HTTP, щоб з’ясувати, що саме не так із запитом до сайту чи застосунку.
Такі сервіси надсилають HTTP-запит на вказану URL-адресу й показують код відповіді від сервера — зокрема, чи це справді 422, чи якась інша помилка. - Скористайся інструментами для налагодження
Вони допоможуть розібратись, що саме відбувається між клієнтом і сервером, і знайти, на якому етапі все ламається.
Для API — Postman, для перехоплення HTTP-трафіку — Fiddler або інструменти у браузері, наприклад Google Developer Console. Ці інструменти показують запити, відповіді й усе, що може підказати, чому прилетіла 422.
Якщо ти хочеш знайти причину помилки вручну або, з якоїсь причини, попередні методи не спрацювали — зроби це:
- Перевір форму
Можливо, одне з полів передає некоректні дані — наприклад, текст замість числа. Варто протестувати форму з іншими значеннями й глянути, чи спрацює. Якщо ні — занурюйся в правила валідації, що прописані на бекенді. - Перевір стан бази даних
Проблема може ховатися в пошкодженій таблиці. Це трапляється після оновлень CMS, плагінів або самого коду. Перевір структуру БД — якщо щось виглядає підозріло, віднови таблицю. - Увімкни debug-режим
Налагодження — це мастхев для виявлення деталей. У WordPress додай уwp-config.php
:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
У Laravel — у .env
:
APP_DEBUG=true
- Погортай серверні логи
Журнали сервера покажуть, що саме сталося під час запиту. Там можуть бути помилки парсингу, проблеми з валідацією або навіть внутрішні збої. Це — ключ до розуміння, де саме все пішло не так.
Як уникнути помилки 422?
Ось кілька простих, але дієвих кроків, як не зловити помилку:
- Перевіряй дані ще до надсилання і дублюй перевірку на бекенді — це мінімізує ризики.
- Обов’язкові поля, правильні формати й типи — мають бути чіткі правила для серверної валідації.
- Оновлюй код і залежності, щоб працювати на актуальному стеку без багів.
Підсумуємо
Тепер ти більше не будеш боятися цих цифр на моніторі. Адже помилка 422 — це не вирок, а підказка: щось із даними пішло не так. А щоб подібні помилки не ставили тебе в глухий кут — не зупиняйся в навчанні. З цим тобі допоможе каталог авторських курсів від ITEDU. Ознайомлюйся з програмою навчання та обирай курс, який метчиться з твоїми потребами.