GitHub Actions "Failed to download action" (rate limited)
Before a step runs, the runner downloads the action archive. Under heavy concurrency or anonymous fetches, the download can be throttled (429), failing the job before any step executes.
What this error means
A job fails early with Failed to download action and a rate-limit or 429 indication.
github-actions
##[error]Failed to download action 'https://api.github.com/repos/owner/action/tarball/v1'.
Error: response status code does not indicate success: 429 (Too Many Requests).Common causes
API rate limiting on action fetch
Many concurrent jobs pulling actions, or unauthenticated fetches, exceed the rate limit.
Transient registry hiccup
A temporary download failure unrelated to your config.
How to fix it
Retry and reduce fetch pressure
- Re-run the job; the throttle window is short.
- Pin actions to SHAs and consider vendoring critical actions to reduce repeated fetches.
- Reduce extreme matrix fan-out that hammers action downloads simultaneously.
Let managed runners absorb the throttle
- Latchkey auto-retries transient action-download failures and serves from warm pools, so a brief 429 does not fail the pipeline.
How to prevent it
- Stagger or cap matrix concurrency for action-heavy workflows.
- Pin and, where appropriate, vendor frequently used actions.
Frequently asked questions
What causes ""Failed to download action""?
Many concurrent jobs pulling actions, or unauthenticated fetches, exceed the rate limit.
How do I fix "Failed to download action"?
Retry and reduce fetch pressure
Related guides
GitHub Actions "has encountered an internal error" (retry)Handle "GitHub Actions has encountered an internal error while running your job" - a transient server-side fa…
GitHub Actions "You have exceeded a secondary rate limit"Fix "You have exceeded a secondary rate limit" from the GitHub API when a workflow makes too many requests to…
GitHub Actions Docker Action Fails - Docker Hub Pull Rate Limit (429)Fix GitHub Actions Docker-action failures from the Docker Hub pull rate limit - anonymous pulls hit "toomanyr…