You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions缓存报错:Content-Length not found on blob response 如何解决?

GitHub Actions缓存恢复报错「Content-Length not found on blob response」的原因与解决办法

问题场景

软件依赖一个极少变更、构建耗时8分钟的第三方库,为加速流水线使用actions/cache@v3缓存构建输出,配置如下:

- name: Cache third-party libraries
  id: cache-libs
  uses: actions/cache@v3
  with:
    path: Path\to\libs
    key: "test-key"

首次构建时缓存未命中(符合预期),构建完成后缓存显示保存成功,且能在仓库的actions/caches页面看到缓存条目,但重新运行工作流时缓存恢复失败,报错:

Run actions/cache@v3
Warning: Failed to restore: Content-Length not found on blob response
Cache not found for input keys: test-key

尝试手动触发缓存保存操作后,问题依旧。

错误含义

这个错误表示GitHub缓存服务返回的缓存Blob对象响应中缺少Content-Length HTTP头部,导致actions/cache无法验证下载的缓存包完整性,因此直接放弃缓存恢复流程。常见诱因包括:缓存条目损坏、GitHub缓存服务临时异常、Windows runner上的路径解析/压缩工具兼容性问题。

解决方法

  • 修正缓存路径格式:在Windows runner中,将路径的反斜杠\替换为正斜杠/,避免路径解析错误导致缓存包内容异常。例如将Path\to\libs改为Path/to/libs。
  • 更换缓存压缩格式:默认的zstd压缩可能在Windows环境存在兼容问题,可指定使用gzip压缩:
    - name: Cache third-party libraries
      id: cache-libs
      uses: actions/cache@v3
      with:
        path: Path/to/libs
        key: "test-key"
        compression: gzip
    
  • 删除旧缓存条目:手动删除仓库actions/caches页面中的旧缓存,重新运行工作流生成全新缓存(旧缓存可能已损坏)。
  • 升级缓存Action版本:切换至actions/cache@v4,新版本修复了多个Windows平台的缓存兼容性问题。
  • 更新runner工具链:确保Windows runner上的Git for Windows(tar工具的来源)为最新版本,旧版本tar打包的缓存包可能存在格式问题。

内容的提问来源于stack exchange,提问作者Dmitry Grigoryev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:17:15