DevToolPal
RU
4xx Ошибки клиента

409 Conflict

Конфликт

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

Запрос конфликтует с текущим состоянием ресурса, например из-за дубля или одновременного редактирования.

Типичные причины

  • Создание уже существующей записи (уникальный email или имя)
  • Редактирование ресурса, который кто-то изменил
  • Конфликт версий или состояний в духе git

Как исправить

Если вы клиент или посетитель

Получите актуальное состояние, разрешите конфликт или выберите другое значение и повторите.

Если вы владелец сайта или API

Объясните в теле, что именно конфликтует. Для оптимистичной блокировки через ETag точнее подходит 412.

Пример ответа

HTTP/1.1
HTTP/1.1 409 Conflict
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "A user with this email already exists."
}

Спецификация

RFC 9110 §15.5.10

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

› 409 или 422 для повторяющегося email?

Используют оба. 409 — для конфликта с существующими данными, 422 — для фреймворка валидации. Главное — единообразие.

› Должны ли клиенты автоматически повторять 409?

Нет: конфликт обычно требует решения. Сначала обновите данные.