HTTP

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.

Fonti