HTTP 409 Conflitto di stato
409 Conflict significa che la richiesta non può essere completata perché contrasta con lo stato attuale della risorsa sul server.
Significato
409 è comune nelle API: si tenta di creare un utente con un'email già registrata, aggiornare un record che un'altra persona ha modificato o effettuare un Git push verso un branch cambiato. La risposta dovrebbe spiegare il conflitto per permetterne la risoluzione.
Cause comuni
- Esiste già una risorsa con la stessa chiave univoca.
- Modifiche simultanee dello stesso record (optimistic locking).
- Una transizione di stato non consentita, per esempio annullare un ordine già spedito.
- La versione del file o dell'oggetto non coincide con quella attesa.
Cosa può fare un visitatore?
- Ricarica la pagina per leggere lo stato più recente e riprova dopo aver verificato le differenze.
- Se un modulo di registrazione restituisce 409, un account con quei dati potrebbe già esistere.
Cosa può fare il gestore?
- Descrivi nella risposta API quale dato è in conflitto e come risolvere il problema.
- Per modifiche concorrenti usa ETag e If-Match, che possono restituire anche 412.
- Non utilizzare 409 per normali errori di validazione: meglio 400 oppure 422.
Effetti sulla SEO
I 409 riguardano soprattutto API e moduli e normalmente non influenzano la SEO delle pagine pubbliche.
Domande frequenti
HTTP 409 è un errore del server?
No. Il server funziona ma non può applicare la richiesta a causa dello stato corrente della risorsa.
Come risolvo un 409 in una API?
Recupera lo stato più recente della risorsa, riconcilia le modifiche e invia una nuova richiesta coerente.