409 Conflict

The HTTP 409 Conflict client error response status code indicates a request conflict with the current state of the target resource.

In WebDAV remote web authoring, 409 conflict responses are errors sent to the client so that a user might be able to resolve a conflict and resubmit the request. For example, conflicts occur if a request to create collection /a/b/c/d/ is made, and /a/b/c/ does not exist, the request must fail with a 409. Additionally, you may get a 409 response when uploading a file that is older than the existing one on the server, resulting in a version control conflict.

In other systems, 409 responses may be used for implementation-specific purposes, such as to indicate that the server has received multiple requests to update the same resource.

Status

http
409 Conflict

Examples

Concurrent tasks disallowed

In the following example, we want to kick off an automation process that performs a common task in the system:

http
POST /tasks HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "task": "emailDogOwners",
  "template": "pickup"
}

In this implementation, the server disallows two concurrent jobs from running and returns a 409, providing the client an opportunity to check if they meant to perform the action or run a different task:

http
HTTP/1.1 409 Conflict
Date: Wed, 26 Jun 2024 12:00:00 GMT
Server: Apache/2.4.1 (Unix)
Content-Type: application/json

{
  "code": "AutomationConflict",
  "task": "emailDogOwners",
  "message": "Task locked. Cannot start a new automation since job is already running.",
  "runningTaskId": "123"
}

Specifications

Specification
HTTP Semantics
# status.409

See also