HTTP Status Codes

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.