# Error response from daemon: 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:** `policy/docker-hub-pull-rate-limit-exceeded`
- **Domain:** policy
- **Category:** resource_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

Docker Hub enforces anonymous pull rate limits (100 pulls per 6 hours per IP) and authenticated free tier limits (200 pulls per 6 hours per user); exceeding these blocks pulls.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Docker Engine 24.0 | active | — | — |
| Docker Desktop 4.25 | active | — | — |
| Docker Hub rate limit policy Nov 2020 | active | — | — |

## Workarounds

1. **Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).** (90% success)
   ```
   Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).
   ```
2. **Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.** (95% success)
   ```
   Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.
   ```

## Dead Ends

- **Restart Docker daemon to reset rate limit counter** — Rate limit is enforced server-side by Docker Hub based on IP address and user account; restarting the daemon does not change the client IP or authentication status. (95% fail)
- **Use a VPN to get a different IP address** — While a new IP may reset anonymous limits temporarily, many corporate VPNs share IPs, causing the same limit to be hit again quickly; also violates many corporate security policies. (70% fail)
