HTTP status codes / 4xx — Client error

409 Conflict

What it means

The request is valid but collides with current server state — a duplicate unique value, a stale version in optimistic locking, concurrent edits.

What causes it

Two writers racing, re-submitting a creation that already happened, version/ETag mismatch on update.

How to fix it

Re-fetch the current state, reconcile, retry with fresh data. For creations: make the operation idempotent (client-generated ids help).