Что это значит
Запрос конфликтует с текущим состоянием ресурса, например из-за дубля или одновременного редактирования.
Типичные причины
- Создание уже существующей записи (уникальный 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."
} Спецификация
Частые вопросы
› 409 или 422 для повторяющегося email?
Используют оба. 409 — для конфликта с существующими данными, 422 — для фреймворка валидации. Главное — единообразие.
› Должны ли клиенты автоматически повторять 409?
Нет: конфликт обычно требует решения. Сначала обновите данные.