HTTP Status 424 - Failed Dependency

Der HTTP-Status-Code 424 Failed Dependency signalisiert, dass Request nicht durchgeführt werden konnte, weil eine abhängige Operation gescheitert ist. Typisch bei WebDAV-Transaktionen die mehrere Resources betreffen. Wenn eine Teil-Operation fails, werden abhängige Operations ebenfalls mit 424 rejected. Erhält transactional Consistency.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben bei WebDAV-Dependency-Failures.

http
HTTP/1.1 424 Failed Dependency

Direktiven

Der 424 Failed Dependency Status Code wird bei abhängigen WebDAV-Operation-Failures verwendet.

Transaction Rollback
Bei Multi-Resource-Operations wird 424 returned wenn eine abhängige Operation scheitert. Alle abhängigen Changes werden rolled back um Consistency zu erhalten.
Conditional Request Failure
Request war abhängig von Success einer anderen Operation (z.B. Lock-Acquisition, Property-Update, Resource-Creation). Da Dependency failed, kann Request nicht durchgeführt werden.
Batch Operation Partial Failure
Bei Batch-Requests (z.B. MOVE mit Depth:infinity) können einzelne Resources fehlschlagen. Abhängige Resources werden mit 424 markiert um Failure-Grund zu klären.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 424.

Beispiel 1 Move Operation with Lock Failure

http
MOVE /documents/draft.docx HTTP/1.1
Host: dav.example.com
Destination: /documents/archive/draft.docx
Depth: infinity

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/documents/draft.docx</D:href>
    <D:status>HTTP/1.1 423 Locked</D:status>
  </D:response>
  <D:response>
    <D:href>/documents/archive/draft.docx</D:href>
    <D:status>HTTP/1.1 424 Failed Dependency</D:status>
    <D:error><D:lock-token-submitted/></D:error>
  </D:response>
</D:multistatus>

Beispiel 2 Batch Property Update with Dependency Failure

http
PROPPATCH /projects/alpha HTTP/1.1
Host: dav.example.com
Content-Type: application/xml

<?xml version="1.0"?>
<D:propertyupdate xmlns:D="DAV:">
  <D:set>
    <D:prop>
      <D:displayname>Project Alpha</D:displayname>
      <D:owner>alice@example.com</D:owner>
    </D:prop>
  </D:set>
</D:propertyupdate>

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/projects/alpha</D:href>
    <D:propstat>
      <D:prop><D:displayname/></D:prop>
      <D:status>HTTP/1.1 403 Forbidden</D:status>
    </D:propstat>
    <D:propstat>
      <D:prop><D:owner/></D:prop>
      <D:status>HTTP/1.1 424 Failed Dependency</D:status>
    </D:propstat>
  </D:response>
</D:multistatus>

Beispiel 3 Collection Delete with Partial Failure

http
DELETE /workspace/project-x HTTP/1.1
Host: dav.example.com
Depth: infinity

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/workspace/project-x/file1.txt</D:href>
    <D:status>HTTP/1.1 404 Not Found</D:status>
  </D:response>
  <D:response>
    <D:href>/workspace/project-x</D:href>
    <D:status>HTTP/1.1 424 Failed Dependency</D:status>
    <D:error><D:cannot-delete-collection-with-failed-members/></D:error>
  </D:response>
</D:multistatus>

WebDAV Multi-Resource Transaction Failure

424 Failed Dependency bei WebDAV-Transactional-Operation mit Rollback

Vorteile für die Systemarchitektur

  • Transactional Integrity: 424 erhält Consistency bei Multi-Resource-Operations. Client weiß dass abhängige Changes nicht durchgeführt wurden wenn Dependency failed.
  • Clear Failure Causality: 424 unterscheidet zwischen direktem Failure (403, 423) und Failure wegen Dependency. Client kann Root-Cause identifizieren und korrektes Retry-Verhalten implementieren.
  • Atomic Batch Operations: WebDAV-Clients können komplexe Batch-Operations implementieren mit Confidence dass entweder alle Changes succeed oder alle rolled back werden. Verhindert Partial-Update-Inconsistencies.

Spezifikation

RFC 4918, Section 11.4 – HTTP Extensions for WebDAV https://www.rfc-editor.org/rfc/rfc4918.html#section-11.4

Weitere Spezifikationen

HTTP Status 422 - Unprocessable Entity, HTTP Status 207 - Multi-Status