cicd registry ai_generated true

toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

ID: cicd/docker-rate-limit

Also available as: JSON · Markdown
90%Fix Rate
92%Confidence
50Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

Docker Hub rate limits were exceeded for anonymous or free-tier pulls. Anonymous pulls are limited to 100 per 6 hours per IP; authenticated free users get 200. CI environments sharing IPs hit this quickly.

generic

Workarounds

  1. 90% success Authenticate with Docker Hub to increase the rate limit
    Create a Docker Hub account and add credentials to CI. For GitHub Actions: store DOCKER_USERNAME and DOCKER_PASSWORD as secrets, add a docker/login-action step before pulls. This doubles the rate limit to 200 pulls/6hr.
  2. 92% success Use a registry mirror or cache proxy
    Set up a pull-through cache registry (e.g., registry:2 with proxy.remoteurl=https://registry-1.docker.io). Or use cloud provider mirrors: AWS ECR Public, GitHub Container Registry (ghcr.io), or Google Mirror (mirror.gcr.io).

Dead Ends

Common approaches that don't work:

  1. Waiting for the rate limit to reset without implementing a long-term fix 80% fail

    The rate limit will be hit again on the next CI run cycle since the underlying pull pattern has not changed

  2. Using a VPN or rotating IPs to bypass the rate limit 75% fail

    This violates Docker Hub terms of service and is unreliable. Shared CI runner IPs still converge on the same rate limits.

Error Chain

Leads to:
Preceded by:
Frequently confused with: