HTTP 409 Conflict means the request could not be completed because it conflicts with the current state of the target resource. This is most common with PUT requests where the client is trying to update a resource that has been modified by another client.
409 ConflictPOST /wiki/edit/dns-article HTTP/1.1
Host: www.example.com
User-Agent: curl/8.6.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 62
title=DNS+Guide&content=Updated+text&base_revision=42HTTP/1.1 409 Conflict
Content-Type: text/html; charset=utf-8
Content-Length: 220
<!doctype html>
<html lang="en">
<head>
<title>409 Conflict</title>
</head>
<body>
<h1>Edit Conflict</h1>
<p>Someone else edited this page while you were working. Please review their changes and try again.</p>
</body>
</html>Fetch the latest version of the resource and resolve any conflicts before retrying.
Include If-Match or If-Unmodified-Since headers to prevent conflicts.
curl -X PUT -H 'If-Match: "etag-value"' -d '{"data":"new"}' https://api.example.com/resourceThe 409 response body typically explains what the conflict is and how to resolve it.
Two clients are trying to update the same resource simultaneously, and the server detects a conflict.
The client is trying to create a resource that already exists with a conflicting unique constraint.
| Specification | Section |
|---|---|
| HTTP Semantics | RFC 9110 §15.5.10 |
This reference was compiled from official RFCs, protocol specifications, and hands-on troubleshooting experience. AI tools were used primarily for formatting and organizing the content on the page.