HTTP 409 Conflict (Conflito)
A requisição conflita com o estado atual do recurso.
Ficha rápida
| Código | 409 |
|---|---|
| Nome oficial (em inglês) | Conflict |
| Nome em português | Conflito |
| Grupo | Erro do cliente (4xx) |
| Definido em | RFC 9110, Section 15.5.10 |
| Quem costuma gerar | O servidor, apontando um problema na requisição enviada pelo cliente. |
O que significa
A requisição entra em conflito com o estado atual do recurso e, por isso, não pode ser concluída. É comum em edições simultâneas, em tentativas de criar algo que já existe e em versões desatualizadas.
Quando o servidor devolve esse código
- Criar um registro com um identificador que já existe.
- Atualizar um recurso que mudou desde que o cliente o leu.
Problemas comuns
- Duas pessoas editando o mesmo registro.
- Repetição de um POST que cria duplicado.
- Enviar uma versão antiga do recurso.
Como resolver
- Leia o recurso de novo, aplique a mudança e reenvie.
- Em criações, trate duplicidade antes de enviar.
- Se a API usa versões ou ETags, use-as para evitar a sobrescrita.
Em automações e integrações
Em fluxos que criam registros, um 409 costuma indicar duplicidade. Trate o caso: busque o registro existente e atualize, em vez de deixar o fluxo falhar.
Não confunda com outros códigos
Não confunda com 422 (conteúdo inválido) nem com 412 (condição do cabeçalho falhou).
Exemplo de resposta
HTTP/1.1 409 Conflict
Content-Type: application/json
{"erro": "cpf já cadastrado"}
O exemplo é ilustrativo: o corpo e os cabeçalhos reais mudam de servidor para servidor. O código e o nome seguem o padrão HTTP.
Perguntas frequentes
409 ou 422?
O 409 diz que há conflito com o estado atual. O 422 diz que o conteúdo, em si, não pode ser processado.
Como resolver edição simultânea?
Recarregue o recurso, aplique a alteração sobre a versão atual e reenvie.