409 HTTP Origin: Network Last updated 15 Oct 2026

HTTP 409 Conflict

The request conflicts with the current state of the resource — e.g. a duplicate or an edit based on an outdated version.

Exact message you may see 409 Conflict
Seen on: REST API Git

Meaning

APIs return 409 for duplicates (“username already taken”), optimistic-locking failures (someone else changed the record first) and invalid state transitions (cancelling an already-shipped order).

Common causes

  • Creating a resource that already exists (unique constraint)
  • Version/ETag mismatch — the resource changed since you read it
  • Invalid state transition
  • Concurrent writes to the same resource

⚡ Quick fix

  1. Read the response body for the conflicting field or state
  2. Re-fetch the latest version, re-apply the change and retry
  3. Use idempotency keys for create operations that may be retried

Detailed fix by platform

REST API

  1. Send If-Match: <etag> on updates and handle 409/412 by refreshing and merging.

Git

  1. Git hosting APIs return 409 for e.g. creating a branch that exists or merging with conflicts.

How to diagnose

  1. State — What is the current server state of the resource?
  2. Concurrency — Did another client modify it?
  3. Uniqueness — Does an equivalent resource already exist?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Network. Errors that are often confused with or caused by this one (click to open):

1062 — MySQL ERROR 1062 (23000): Duplicate entry for key (MySQL)106223505 — PostgreSQL: ERROR: duplicate key value violates unique constraint (PostgreSQL)23505400 — HTTP 400 Bad Request (HTTP)40040001 — ERROR: could not serialize access due to concurrent update (PostgreSQL)40001412 — HTTP 412 Precondition Failed (HTTP)412422 — HTTP 422 Unprocessable Content (HTTP)422423 — HTTP 423 Locked (HTTP)423424 — HTTP 424 Failed Dependency (HTTP)424409

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.