HTTP 409 Conflict
What a 409 Conflict response means, why it happens, and the fastest ways to fix it.
The request conflicts with the current state of the resource — the classic response for concurrent edits, duplicate creations, or version mismatches.
- Creating a resource that already exists (duplicate username).
- Optimistic-locking version mismatch (stale ETag/If-Match).
- Git-style state conflicts in APIs.
- Fetch the current state and reapply the change.
- Honor ETag/If-Match versioning if the API uses it.
- Make creation idempotent (PUT with a client-chosen ID, or idempotency keys).
Notes
HTTP status codes are defined in RFC 9110 (which replaced RFC 7231). The first digit is the class: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error.
Same class: 400 · 401 · 403 · 404 · 405 · 408 · 410 · 412 · 413 · 415 · 418 · 422 · 425 · 429 · 431 · 451
All codes: HTTP status code reference
Frequently asked questions
What does HTTP 409 mean?
HTTP 409 Conflict: The request conflicts with the current state of the resource — the classic response for concurrent edits, duplicate creations, or version mismatches.
How do I fix a 409 error?
Fetch the current state and reapply the change. Honor ETag/If-Match versioning if the API uses it. Make creation idempotent (PUT with a client-chosen ID, or idempotency keys).
Is a 409 my fault or the server's?
409 is a client error — the request itself needs to change, though server misconfiguration can also trigger it.