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
Do not retry automatically
Repeating the same request produces the same result. A retry loop here just multiplies load and hides the real fault.
Not cacheable by default
Caches will not store this response unless you send explicit freshness headers saying they may.
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
2Trying to create a user email that already exists
Simultaneous record updates locking DB
Effect on search
Neutral. Usually API specific.
How to send it
1return new ResponseEntity<>("User exists", HttpStatus.CONFLICT);Codes people confuse with this one
2Bad Request
The server cannot process the request because the client sent invalid syntax, malformed JSON, missing fields, or headers the endpoint cannot accept.
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors. Very common in robust REST APIs for payload validation errors.