409 Conflict
The request could not be completed because it conflicts with the resource's current state — an edit collision, duplicate creation, or version mismatch.
What it means
409 Conflict signals a state conflict the client could potentially resolve and retry: two users editing the same record, creating a resource that already exists, or a version that no longer matches. The body should explain the conflict so the client can reconcile it.
HTTP RESPONSE
HTTP/1.1 409 Conflict
Content-Type: application/problem+json
{ "title": "Version mismatch", "expected": 7, "actual": 9 }Why it matters
- It enables optimistic-concurrency workflows where clients detect and resolve edit collisions.
- It cleanly distinguishes a state conflict from a validation error (422) or a hard failure.
Common mistakes
- Using 409 for plain validation errors that are not really conflicts (prefer 400/422).
- Returning 409 with no detail about what conflicts, so the client cannot reconcile.
How WebInspect checks this
- The API Inspector reviews whether write endpoints use appropriate status codes and structured errors.