DevToolPal
EN
4xx Client errors

409 Conflict

What it means

The request conflicts with the current state of the resource, such as a duplicate or a concurrent edit.

Common causes

  • Creating a record that already exists (unique email or name)
  • Editing a resource someone else changed
  • A git-like version or state conflict

How to fix it

As a client or visitor

Fetch the latest state, resolve the conflict or choose a different value, then retry.

As the site or API owner

Explain what conflicts in the body. For optimistic locking with ETags, 412 is the more precise status.

Example response

HTTP/1.1
HTTP/1.1 409 Conflict
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "A user with this email already exists."
}

Specification

RFC 9110 §15.5.10

FAQ

› 409 or 422 for a duplicate email?

Both are used. 409 fits a conflict with existing data; 422 fits a validation framework. Be consistent.

› Should clients retry 409 automatically?

No; the conflict usually needs a decision. Refresh the data first.