HTTP 409 Conflict: What It Means and How to Fix It
DIRECT ANSWER
HTTP 409 Conflict means the server cannot complete a request because it conflicts with the current state of the target resource. It commonly occurs when an update collides with an existing resource, a concurrent change, or an application rule. Check the exact method, URL, response headers and server or application logs before changing configuration.
Key takeaways
- HTTP 409 describes a conflict with the current state of a resource; it does not automatically mean the whole website is down.
- The conflict may be specific to one URL, HTTP method, user, resource or API operation.
- Response headers and the response body often provide more useful detail than the status code alone.
- Identify whether the application, web server, reverse proxy, CDN or WAF generated the response.
- Do not repeatedly retry a request or make broad security and permission changes without understanding the conflict.
Site Administrator
Last reviewed: September 25, 2026
What this error means & how to recognize it
- A browser, API client, monitoring tool or integration receives an
HTTP 409 Conflictresponse. - A resource creation or update fails while other pages or API routes continue to work.
- The error may occur only with one HTTP method, such as
POST,PUTorPATCH. - Repeating the same request produces the same conflict, while a request for a different resource succeeds.
- The response body may identify an existing resource, stale version, duplicate value, state transition or application rule.
- DNS may still resolve and TLS may still succeed because the request reached an HTTP-speaking endpoint; those are separate checks.
Root causes, ordered by likelihood
- A resource already exists or a unique value is duplicated. A create operation can conflict with an existing record, username, identifier, filename or other uniquely constrained value.
- A concurrent or stale update. The resource may have changed since the client last read it, so the submitted version no longer matches the current state.
- An invalid state transition. The application may reject an operation that is not allowed in the resource's current state, such as modifying a completed, archived or locked item.
- Application or web-server rules. Route logic, validation, request policies or custom error handling may deliberately return 409 for a known conflict.
- Proxy, CDN or WAF behavior. An intermediary can generate or transform the response because of routing, caching, request inspection or upstream configuration.
- Environment-specific authentication or authorization rules. Some applications use 409 for a conflict involving account or resource state, although authentication failures more commonly use other status codes. Confirm the behavior from the response and logs rather than assuming the status code's source.
How to fix it
First, confirm the request
- Record the exact URL, HTTP method, request body, authenticated user or client context, time and final status code.
- Check the response headers and body for a conflict identifier, resource location, version information, cache status, proxy marker or application error message.
- Confirm whether redirects occurred and whether the 409 came from the final endpoint or an intermediary.
- Avoid changing configuration until you know whether the response is intentional for that route and method.
If you are a visitor or API consumer
- Verify the URL, selected account or resource, and submitted data.
- If the operation creates a resource, check whether it already exists before submitting it again.
- If the operation updates a resource, refresh or retrieve the current version and retry only with the application's supported update workflow.
- Sign in through the normal account flow if the resource requires authentication; do not submit passwords or tokens to an untrusted page.
- Avoid repeated retries when the response indicates a duplicate, locked state or server-side limit.
- If the conflict persists, send the site owner or API provider the endpoint, method, timestamp, response body and a sanitized request identifier. Remove passwords, cookies, API keys and personal data.
If you maintain the website or API
- Reproduce the issue with the same method, URL, request data and account or client context. Use a test or staging environment when the operation changes data.
- Determine which component generated the response: application, web server, reverse proxy, CDN or WAF. Compare response headers, server signatures and request identifiers where available.
- Search the matching logs at that component and correlate the timestamp, route, method, user or client identifier and upstream response.
- For create operations, check duplicate or unique-field constraints. For updates, check optimistic-locking, version,
ETagor other concurrency data used by the application. - Review the resource's current state and the application's allowed state transitions. Do not bypass a conflict simply by deleting or overwriting data unless that action is authorized and understood.
- Compare recent deployments and changes to routing, validation, authentication, caching, proxy and WAF rules.
- Apply the narrowest documented correction, then retest the same request and a normal request for related routes. Confirm that the response body, headers and status code now match the intended behavior.
- If the 409 is intentional, make the response actionable by explaining the conflict and, where appropriate, identifying how the client can refresh, choose a different value or resolve the state.
Prevention & how to verify the fix
- Document which operations can intentionally return 409 and what clients should do next.
- Use clear duplicate, stale-version and invalid-state messages in API responses.
- Test create, update and concurrent-update workflows after application releases.
- Keep routing, proxy, authentication, caching and WAF configuration version controlled.
- Monitor status codes by route and HTTP method rather than treating all 409 responses as one issue.
- Retain application and infrastructure logs long enough to correlate conflicts with deployments and configuration changes.
- Use a documented concurrency strategy, such as the version or conditional-update mechanism supported by the application.
When to get outside help
Escalate to the site owner, API provider or infrastructure team when an unexpected 409 affects an important public route, many users, data updates or an integration. Seek specialist review before changing authentication, WAF, proxy, database or concurrency settings, or before deleting and recreating resources. Provide sanitized request details, timestamps, response headers, response body and relevant logs; never share passwords, session cookies, API secrets or unnecessary personal data.
Frequently asked questions
Does HTTP 409 mean the whole website is down?
No. It applies to a particular HTTP request. A conflict may affect only one resource, URL, method, account or API operation while the rest of the site works normally.
What is the most common reason for a 409 on an API?
A duplicate resource or a conflicting update is common. Check whether the resource already exists and whether the client is submitting an old version of a resource.
Should I retry an HTTP 409 request?
Not blindly. First determine whether the conflict is caused by a duplicate, stale version or invalid resource state. Refreshing the current state or choosing a different value may be appropriate, but repeated identical requests usually will not resolve the conflict.
Is HTTP 409 caused by DNS or SSL?
Usually not. A 409 is an HTTP-layer response, while DNS resolution and TLS negotiation are separate parts of the connection. They can still be healthy when a server returns 409.
How can a site owner find what generated the 409?
Compare the response headers and body with request identifiers, then correlate the timestamp and route across application, web-server, reverse-proxy, CDN and WAF logs. This distinguishes an intentional application response from an intermediary response.
Is HTTP 409 the same as HTTP 401 or 403?
No. A 401 generally concerns authentication and a 403 concerns permission to access a resource. Applications can define their own error handling, so inspect the response and documentation rather than inferring the cause from the status code alone.
Further documentation
- MDN Web Docs — HTTP 409 Conflict: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409
- RFC 9110 — HTTP Semantics: https://www.rfc-editor.org/rfc/rfc9110