424

Failed Dependency

4xx Client Error

ELI5

I couldn't do what you asked because something else you wanted me to do first didn't work out. It's like a domino effect - one failure caused this one.

Server perspective

Use 424 in WebDAV-style multi-step operations when this action failed only because a dependent action failed first.

When to use

  • Return 424 when one command in a compound request depends on another command that already failed
  • Use it to explain cascading failure in dependency-aware operations
  • WebDAV transaction failures with dependencies
  • Multi-step operations where earlier steps failed
  • Atomic operations that must succeed or fail together
  • File system operations with prerequisite failures
  • Batch operations with interdependent steps

How to respond

  • Identify the failed prerequisite action clearly in the response body
  • Keep the dependency chain understandable so clients know which step actually broke first

Headers to consider

  • No status-specific header is required; still send normal HTTP metadata such as Content-Type, caching, or tracing headers when they help the client.

Response body

  • WebDAV responses typically describe the original failed dependency in XML details

Server-side pitfalls

  • Do not use 424 as a vague batch-failure shortcut without identifying the broken dependency
  • Do not use it for standalone requests with no real prerequisite action
  • Single operation failures (use appropriate 4xx/5xx codes)
  • Independent operation failures (use 207 Multi-Status)
  • Non-WebDAV APIs (use appropriate error codes)
  • Simple validation errors (use 422 Unprocessable Content)

Examples

PROPPATCH with failed lock dependency

Request:PROPPATCH https://api.example.test/documents/report.doc # Headers Content-Type: application/xml # Body <?xml version="1.0"?> <D:propertyupdate xmlns:D="DAV:"> <D:set><D:prop><D:displayname>Q4 Report</D:displayname></D:prop></D:set> </D:propertyupdate>
Response:424 Failed Dependency # Headers Content-Type: application/xml # Body <?xml version="1.0"?> <D:multistatus xmlns:D="DAV:"> <D:response> <D:href>/documents/report.doc</D:href> <D:status>HTTP/1.1 424 Failed Dependency</D:status> </D:response> </D:multistatus>

A PROPPATCH request to update resource properties fails because the preceding LOCK operation it depended on was denied, making the property update impossible.

Atomic file system operation

Request:MOVE https://api.example.test/resource
Response:424 Failed Dependency # Headers Content-Type: application/json # Body { "error": "failed_dependency" }

Property update failed because the file move operation it depended on failed

References

Related Status Codes