409 Conflict ("конфликт")
https://httpcat.ru/409
Это прямая ссылка на изображение со статусом. Вы можете скопировать и использовать её где угодно.

Описание
Код состояния 409 Conflict означает, что сервер не может обработать запрос из-за конфликта с текущим состоянием ресурса. Обычно возникает при попытке создать, обновить или удалить объект, если это нарушает целостность данных.
Основные характеристики:
- Запрос корректен по синтаксису, но конфликтует с текущими данными
- Может возникать при конфликте версий, уникальности, прав доступа или параллельной модификации
- Сервер может включить в тело ответа информацию о причине конфликта
Типичное использование:
POST /api/users HTTP/1.1 Content-Type: application/json { "email": "john@example.com" } HTTP/1.1 409 Conflict Content-Type: application/json { "error": "User with this email already exists" }
Особенности заголовков:
Content-Type
— если возвращается тело с пояснением конфликтаETag
илиIf-Match
— могут использоваться при проверке версий
Когда использовать:
- При попытке создать дубликат ресурса (например, по уникальному полю)
- При конфликте версий данных (например, в системах с параллельным редактированием)
- Когда действия клиента нарушают бизнес-логику или целостность модели
Дополнительно:
- 409 — это **логическая ошибка**, не синтаксическая
- Отличие от
400 Bad Request
: 400 — проблема в запросе, 409 — конфликт с текущим состоянием на сервере - В системах с редактированием может использоваться совместно с
ETag
и заголовками условных запросов
Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409