409 Conflict

All status codes
4xx · Client errorterminal

409Conflict

Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict.

What this code obliges you to do

Retry

Do not retry automatically

Repeating the same request produces the same result. A retry loop here just multiplies load and hides the real fault.

Caching

Not cacheable by default

Caches will not store this response unless you send explicit freshness headers saying they may.

Response body

Body allowed

You may return a payload explaining the outcome — for an error, a machine-readable problem document is worth the effort.

What usually causes it

2
1

Trying to create a user email that already exists

2

Simultaneous record updates locking DB

Effect on search

Neutral. Usually API specific.

How to send it

1
Java (Spring)
return new ResponseEntity<>("User exists", HttpStatus.CONFLICT);

Codes people confuse with this one

2
Class4xx
RetryNo
CacheNo
BodyAllowed