4xx Client Error
HTTP 409 Conflict
The request could not be completed due to a conflict with the current state of the target resource. This is typically used in situations where the user might be able to resolve the conflict and resubmit.
Common Causes
- Trying to create a resource that already exists
- Concurrent edit conflict (optimistic locking failure)
- Version mismatch during an update operation
- Conflicting state transition (e.g., publishing an already published item)
How to Fix
- 1Fetch the latest version of the resource and retry
- 2Resolve the conflict (merge changes) before resubmitting
- 3Use conditional requests (If-Match) for safe updates
- 4Check for duplicate entries before creating new ones
Example
HTTP 409 Conflict
POST /api/users HTTP/1.1
{ "email": "alice@example.com" }
→ 409 Conflict
→ "A user with this email already exists"Related Client Error Codes
400
Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Timeout
410Gone
411Length Required
412Precondition Failed
413Content Too Large
414URI Too Long
415Unsupported Media Type
416Range Not Satisfiable
417Expectation Failed
418I'm a Teapot
421Misdirected Request
422Unprocessable Content
423Locked
424Failed Dependency
425Too Early
426Upgrade Required
428Precondition Required
429Too Many Requests
431Request Header Fields Too Large
451Unavailable For Legal Reasons