I’ve recently tried to update mailcow by running the update.sh file. When doing so I get…

Error pulling memcached:alpine, retrying...
Error response from daemon: toomanyrequests: You have reached your unauthenticated pull rate limit. https://www.docker.com/increase-rate-limit

About half way through. This makes no sense because I’m logged into Docker (i.e should have higher limit) and I’ve checked using this command

root@na01:/opt/mailcow-dockerized# TOKEN=$(curl --user '...:...' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6015    0  6015    0     0  20846      0 --:--:-- --:--:-- --:--:-- 20813
root@na01:/opt/mailcow-dockerized# curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1
HTTP/1.1 200 OK
content-length: 527
content-type: application/vnd.docker.distribution.manifest.v2+json
docker-content-digest: sha256:...
docker-distribution-api-version: registry/2.0
etag: "sha256:..."
date: Fri, 28 Mar 2025 16:47:28 GMT
strict-transport-security: max-age=31536000
ratelimit-limit: 200;w=21600
ratelimit-remaining: 200;w=21600
docker-ratelimit-source: ...

It clearly shows I have 200 pulls left. I wonder if maybe the pulls are still somehow being made unauthenticated instead of authenticated with the logged in account. Although this is unlikely. I think it lies further down. I’ve heard that Docker actually limits the IPv6’s subnet instead of the IPv6 it’s self. Causing it to be a “shared” like rate limit. Not sure why, just heard it does.

I’m questioning if anyone can help me out on this and provide some clarity on what to do.


Well in your example you are passing auth token to curl to get elevated user account type, so how did you elevate your account type while you run update?

My guess you did not, therefore your requests are rate-limited to 10 request while ipv4/32 and/or ipv6/64.

Instead of mangling tokens try docker login

But as far I know MC switch from rate-limited docker hub to different provider (github one mabye?…), may be worth to investigate this too,…

Have something to say?

Join the community by quickly registering to participate in this discussion. We'd like to see you joining our great moo-community!

No one is typing