首页/网络/协议速查/424 Failed Dependency 依赖失败
HTTP 方法与状态码91 条

424 Failed Dependency 依赖失败

WebDAV:因为另一个操作失败,导致本操作无法执行(同一事务内依赖前序步骤)。

协议速查网络更新于 2026-10-13

424 是什么

424 Failed Dependency 是 WebDAV(RFC 4918 §11.4)定义的失败传播码:在批量请求中,某个操作因为同一事务内的前置操作失败而未能执行。它让服务器表达「不是这个子请求本身有问题,而是它依赖的步骤挂了」,常见于 PROPPATCH 以及事务型批量写入。

基本信息

名称424 Failed Dependency
类别4xx(作为 207 子项时表示该成员未执行)
规范RFC 4918 §11.4
场景批量与事务型操作中的级联失败
位置通常作为 207 Multi-Status 的子项出现
现状普通 REST 接口很少使用

典型使用场景

  • WebDAV 批量属性修改(PROPPATCH)的部分失败表达
  • 事务语义设计参考:需要「要么都成功」的接口如何返回失败
  • 客户端解析 207 时区分「自己失败」与「被上游拖累」
  • 排障:批量操作只报错一项时的连锁反应定位
  • 错误码评审:判断业务是否真的需要依赖失败语义
  • 重试策略设计:确认重试单个失败项是否有效

批量操作示意

批量操作示意
PROPPATCH /col/doc.txt
<propertyupdate> 内含多条 set 指令
→ 第一步(创建属性)失败
→ HTTP/1.1 207 Multi-Status
   <response>/col/doc.txt  424 Failed Dependency   # 后续变更被跳过
# 424 说明原因在依赖项上,而不是本项的参数本身有问题

207 子项状态码

状态码含义客户端处理
200 与 201子操作成功继续处理其余项
424因其他子项失败而未执行重试整组或跳过
507存储不足导致失败清理空间后重试
403无权限修正权限配置
普通 REST API 很少需要 424:批量任务通常在响应体里逐项列出错误,比借用状态码更清晰。
424 的语义是「依赖失败」而不是「本身失败」,日志里区分这两类能显著缩短定位时间。
只有重试整组操作才有意义:依赖关系没解决时,单独重试失败项通常会继续返回 424。
部分框架把 424 用于其他含义,对接前要确认对方文档,不要按 WebDAV 语义想当然。
事务边界要明确:若第一步失败后后续步骤本就不应执行,用 424 表达比逐项返回 4xx 更准确。

易错点

  • 把 424 记成业务错误会误导排查方向:真正的原因在它依赖的那一项上
  • 客户端遇到 424 只重试失败项通常无效:依赖关系没解决,重试还会继续 424
  • 非 WebDAV 场景滥用 424 会与框架内建的错误映射冲突
  • 批量接口不返回逐项结果、只给一个 424,调用方无法定位到底哪一步失败
  • 把 424 与 207 混为一谈:207 是容器状态码,424 只是其中一个子项的结果

数据来源与参考

  • RFC 4918 §11.4 424 Failed Dependency

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌