Cosa significa
La richiesta è in conflitto con lo stato attuale della risorsa, per esempio un duplicato o una modifica concorrente.
Cause comuni
- Creazione di un record già esistente (email o nome univoco)
- Modifica di una risorsa cambiata da qualcun altro
- Un conflitto di versione o di stato in stile git
Come risolvere
Lato client o visitatore
Recupera lo stato più recente, risolvi il conflitto o scegli un altro valore, poi riprova.
Lato gestore del sito o dell’API
Spiega nel corpo cosa è in conflitto. Per il locking ottimistico con ETag, il 412 è lo stato più preciso.
Risposta di esempio
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."
} Specifica
Domande frequenti
› 409 o 422 per un'email duplicata?
Si usano entrambi. Il 409 si adatta a un conflitto con dati esistenti; il 422 a un framework di validazione. Sii coerente.
› I client devono ritentare un 409 automaticamente?
No; il conflitto di solito richiede una decisione. Aggiorna prima i dati.