{"record":{"id":"73544e7e9a2abc5f","repo":"eclipse-vertx/vert.x","slug":"424-failed-dependency-webdav-rfc4918","errorCode":null,"errorMessage":"424 Failed Dependency (WebDAV, RFC4918)","messagePattern":"424 Failed Dependency \\(WebDAV, RFC4918\\)","errorType":"http","errorClass":null,"httpStatus":424,"severity":"error","filePath":"vertx-core/src/main/java/io/vertx/core/http/HttpResponseExpectation.java","lineNumber":255,"sourceCode":"  /**\n   * 421 Misdirected Request\n   */\n  HttpResponseExpectation SC_MISDIRECTED_REQUEST = status(421);\n\n  /**\n   * 422 Unprocessable Entity (WebDAV, RFC4918)\n   */\n  HttpResponseExpectation SC_UNPROCESSABLE_ENTITY = status(422);\n\n  /**\n   * 423 Locked (WebDAV, RFC4918)\n   */\n  HttpResponseExpectation SC_LOCKED = status(423);\n\n  /**\n   * 424 Failed Dependency (WebDAV, RFC4918)\n   */\n  HttpResponseExpectation SC_FAILED_DEPENDENCY = status(424);\n\n  /**\n   * 425 Unordered Collection (WebDAV, RFC3648)\n   */\n  HttpResponseExpectation SC_UNORDERED_COLLECTION = status(425);\n\n  /**\n   * 426 Upgrade Required (RFC2817)\n   */\n  HttpResponseExpectation SC_UPGRADE_REQUIRED = status(426);\n\n  /**\n   * 428 Precondition Required (RFC6585)\n   */\n  HttpResponseExpectation SC_PRECONDITION_REQUIRED = status(428);\n\n  /**\n   * 429 Too Many Requests (RFC6585)","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/eclipse-vertx/vert.x/blob/fb308bd8c3f12c79f4ae89bef67fadf6c80d036e/vertx-core/src/main/java/io/vertx/core/http/HttpResponseExpectation.java#L237-L273","documentation":"SC_FAILED_DEPENDENCY is an HttpResponseExpectation constant for HTTP 424 (WebDAV, RFC4918). It indicates the request failed because a dependent request/operation it relied on failed. Vert.x exposes it for status assertions in HttpClient expectations.","triggerScenarios":"WebDAV multi-resource operations (e.g. MKCOL inside a path whose parent creation failed, or PROPPATCH on a resource that is part of a failed collection operation), or batch operations where one prerequisite request already failed with a 4xx.","commonSituations":"Batched WebDAV/REST operations where an earlier step failed; creating nested resources when a parent is missing; orchestration flows where one API call's failure cascades to dependents.","solutions":["Identify and fix the failed prerequisite request first, then retry the dependent operation.","Ensure parent resources/collections exist (create them in order) before dependent operations.","Make operations idempotent and ordered so a partial failure can be resumed rather than cascading.","Surface the root cause (the first failing request) instead of the 424 symptom."],"exampleFix":"// before\nclient.request(POST, \"/api/children\")  // parent /api/parents does not exist -> 424\n// after\nclient.request(POST, \"/api/parents\").compose(p -> client.request(POST, \"/api/children\"));","handlingStrategy":"fallback","validationCode":"for (String path : requiredAncestors) {\n  if (!exists(path)) createFirst(path); // ensure prerequisites before dependent calls\n}","typeGuard":"boolean is424(HttpClientResponse resp) { return resp.statusCode() == 424; }","tryCatchPattern":"batchSend().onFailure(err -> {\n  if (isCauseStatus(err, 424)) replayAfterFixingPrerequisite();\n});","preventionTips":["Create parent resources before dependents","Order batch operations by dependency","Make each step idempotent so it can be safely retried","Log the first failing request, not just the 424"],"tags":["http","webdav","dependency","vertx-http-client"],"backgroundTag":"http-error-status","analyzedSha":"fb308bd8c3f12c79f4ae89bef67fadf6c80d036e","analyzedAt":"2026-09-06T11:37:12.241Z","contentChangedAt":"2026-09-06T11:37:12.241Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}