UPLOAD_TIMEOUT cicd network_error ai_generated true

Error: Failed to upload artifact. Request timed out after 120000ms while uploading artifact 'dist'

ID: cicd/github-actions-artifact-upload-timeout

Also available as: JSON · Markdown · 中文
78%Fix Rate
88%Confidence
1Evidence
2024-01-20First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
actions/upload-artifact@v3 active
actions/upload-artifact@v4 active
GitHub Actions hosted runner active

Root Cause

Artifact upload to GitHub Actions storage times out due to large file size, slow network connectivity, or server-side throttling during peak hours.

generic

中文

工件上传到GitHub Actions存储超时,原因是大文件大小、网络连接缓慢或高峰时段服务器端限流。

Official Documentation

https://github.com/actions/upload-artifact#readme

Workarounds

  1. 85% success Split artifact into smaller chunks using multiple upload steps: `tar -czf dist-part1.tar.gz dist/ && actions/upload-artifact@v4 with name: dist-part1` and repeat
    Split artifact into smaller chunks using multiple upload steps: `tar -czf dist-part1.tar.gz dist/ && actions/upload-artifact@v4 with name: dist-part1` and repeat
  2. 80% success Reduce artifact size by excluding unnecessary files: `actions/upload-artifact@v4 with path: dist/ --exclude '*.map'` and add .gitignore patterns
    Reduce artifact size by excluding unnecessary files: `actions/upload-artifact@v4 with path: dist/ --exclude '*.map'` and add .gitignore patterns
  3. 90% success Use self-hosted runner with faster network or upload via custom script using GitHub API with chunked upload
    Use self-hosted runner with faster network or upload via custom script using GitHub API with chunked upload

中文步骤

  1. Split artifact into smaller chunks using multiple upload steps: `tar -czf dist-part1.tar.gz dist/ && actions/upload-artifact@v4 with name: dist-part1` and repeat
  2. Reduce artifact size by excluding unnecessary files: `actions/upload-artifact@v4 with path: dist/ --exclude '*.map'` and add .gitignore patterns
  3. Use self-hosted runner with faster network or upload via custom script using GitHub API with chunked upload

Dead Ends

Common approaches that don't work:

  1. 55% fail

    Transient network issues may resolve, but if file size or throttling is the cause, retries fail repeatedly.

  2. 95% fail

    actions/upload-artifact does not support custom timeout; timeout is hardcoded on GitHub's side.

  3. 40% fail

    Upload step already compresses; manual compression adds overhead and may not reduce size enough.