Co to znaczy
Żądanie koliduje z bieżącym stanem zasobu, np. duplikat lub równoczesna edycja.
Typowe przyczyny
- Tworzenie rekordu, który już istnieje (unikalny e-mail lub nazwa)
- Edycja zasobu, który zmienił ktoś inny
- Konflikt wersji lub stanu jak w git
Jak naprawić
Jako klient lub odwiedzający
Pobierz najnowszy stan, rozwiąż konflikt lub wybierz inną wartość i ponów.
Jako właściciel strony lub API
Wyjaśnij w treści, co koliduje. Dla blokowania optymistycznego z ETagami dokładniejszy jest status 412.
Przykładowa odpowiedź
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."
} Specyfikacja
FAQ
› 409 czy 422 dla zduplikowanego e-maila?
Używa się obu. 409 pasuje do konfliktu z istniejącymi danymi; 422 do frameworka walidacji. Bądź konsekwentny.
› Czy klienci powinni automatycznie ponawiać 409?
Nie; konflikt zwykle wymaga decyzji. Najpierw odśwież dane.