What does HTTP 409 mean?
The request conflicts with the current state of the resource. Typical in APIs: creating a user with an email that already exists, or updating a record that someone else changed in the meantime (optimistic locking with version numbers or ETags).
4xx Client error: The request has a problem the client can fix: wrong URL, missing credentials, bad data or too many requests.
Common causes of a 409 error
- Duplicate unique value (email, username, slug).
- Edit conflict between two clients.
How to fix 409 Conflict
- Fetch the latest version, merge the changes and retry.
- Show users a clear “already exists” message.
409 and SEO
Not relevant for web pages.
Example response
HTTP/1.1 409 Conflict
How to return a 409 response
Node.js (Express)
res.status(409).json({ error: 'Conflict' });PHP
http_response_code(409);Python (Flask)
return {'error': 'Conflict'}, 409Go (net/http)
w.WriteHeader(409)nginx
return 409;
Related status codes
- 412 Precondition Failed — A condition in the request headers (If-Match, If-Unmodified-Since) was not met.
- 422 Unprocessable Content — The request is well-formed but contains semantic errors.
- 201 Created — The request succeeded and a new resource was created.
Check which status code a URL returns with the HTTP header checker.