Skip to content
Latchkey

GitHub Actions "Docker login rate limited" during a job

The registry throttled the runner with a rate-limit response while pulling or logging in, commonly anonymous Docker Hub pulls. On Latchkey managed runners, transient rate-limit failures are auto-retried and warm pools reduce repeat pulls of common base images.

What this error means

A docker login or image pull fails with a "too many requests" or rate-limit error from the registry.

github-actions
Error response from daemon: toomanyrequests: You have reached your pull rate limit.
##[error]Process completed with exit code 1.

Common causes

Anonymous pulls hit the rate limit

Unauthenticated pulls from a shared egress IP exhaust the registry's anonymous rate budget.

No registry authentication configured

The job pulls without logging in, so it gets the lowest rate-limit tier.

How to fix it

Authenticate to raise the limit

  1. Log in to the registry with credentials stored as secrets before pulling.
  2. Prefer a mirror or your own registry for frequently pulled base images.
  3. Re-run; authenticated pulls have higher limits, and transient throttles are auto-retried.
.github/workflows/ci.yml
- uses: docker/login-action@v3
  with:
    username: ${{ secrets.DOCKERHUB_USERNAME }}
    password: ${{ secrets.DOCKERHUB_TOKEN }}
- run: docker pull node:20-bookworm

How to prevent it

  • Authenticate to registries to get higher pull-rate limits.
  • Mirror or cache frequently used base images to avoid repeated remote pulls.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →