What Is a 409 Status Code?

The request could not be completed due to a conflict with the current state of the target resource. This code is used in situations where the user might be able to resolve the conflict and resubmit the request.

The server SHOULD generate a payload that includes enough information for a user to recognize the source of the conflict.

Conflicts are most likely to occur in response to a PUT request. For example, if versioning were being used and the representation being PUT included changes to a resource that conflict with those made by an earlier (third-party) request, the origin server might use a 409 response to indicate that it can’t complete the request. In this case, the response representation would likely contain information useful for merging the differences based on the revision history.


409 CODE REFERENCES

Rails HTTP Status Symbol :conflict

Go HTTP Status Constant http.StatusConflict

Symfony HTTP Status Constant Response::HTTP_CONFLICT

Python2 HTTP Status Constant httplib.CONFLICT

Python3+ HTTP Status Constant http.client.CONFLICT

Python3.5+ HTTP Status Constant http.HTTPStatus.CONFLICT

.NET HttpStatusCode.Conflict

Rust http::StatusCode::CONFLICT

Java java.net.HttpURLConnection.HTTP_CONFLICT

Apache HttpComponents Core org.apache.hc.core5.http.HttpStatus.SC_CONFLICT

Angular @angular/common/http/HttpStatusCode.Conflict

409 status code example

Here’s an example request and response for a 409 Conflict status code:

Request

PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
"name": "John Smith",
"email": "[email protected]",
"password": "newpassword"
}

Response

HTTP/1.1 409 Conflict
Content-Type: application/json
Content-Length: 42

{
"error": "User with ID 123 already exists"
}

In this example, the request is trying to update a user with ID 123. However, the server responds with a 409 Conflict status code because a user with that ID already exists. The response includes a JSON error message indicating the cause of the conflict.

How to fix a 409 status code

To fix a 409 error, the client should take the following steps:

  • Identify the cause of the conflict: The error message returned with the 409 status code should provide information on the cause of the conflict. The client should review the message to determine why the conflict occurred.
  • Resolve the conflict: The client should take appropriate actions to resolve the conflict. This could involve updating the existing resource with correct information or deleting the conflicting resource if it is no longer needed.
  • Retry the request: Once the conflict is resolved, the client can retry the original request. If successful, the server should respond with a 2xx success status code, such as 200 OK or 201 Created.

It is important to note that the specific steps to fix a 409 error may vary depending on the context of the error. In some cases, the client may need to take additional steps to ensure that the resource is updated correctly and that the conflict is fully resolved.

What is the difference between a 409 status code and a 412 status code?

The main difference between a 409 Conflict and a 412 Precondition Failed status code is the context in which they are typically used.

A 409 status code is used to indicate a conflict with the current state of a resource, such as when trying to create or update a resource that already exists or has conflicting information. This status code indicates that the request cannot be completed due to a conflict with the current state of the resource.

On the other hand, a 412 status code is used to indicate that a condition specified in the request headers, such as an If-Match or If-None-Match header, was not met. This status code indicates that the server has evaluated the preconditions specified in the request headers and found them to be false.

In other words, a 409 Conflict status code is usually related to the state of the resource, while a 412 Precondition Failed status code is related to the conditions specified in the request headers.

Does a 409 status code affect SEO?

A 409 Conflict status code can potentially have a negative impact on SEO if it occurs frequently and affects the usability or accessibility of a website or web application.

When a 409 error occurs, it means that the client was not able to successfully create or update a resource due to a conflict with the current state of the resource. This can result in broken links, missing or incorrect information, or other issues that can negatively impact the user experience. If these issues persist, they can lead to a decrease in user engagement and ultimately have a negative impact on SEO.

However, a single occurrence of a 409 error is unlikely to have a significant impact on SEO. Search engines are designed to handle errors and can typically still crawl and index a website even if some resources are temporarily unavailable. It is important for website owners and developers to address and fix any recurring 409 errors to ensure that their website or web application remains accessible and usable for both users and search engines.

Additional resources


Return to List of HTTP Status Codes

TO TOP