Clawhub Rate Limit Exceeded: What It Means & How to Fix It
Quick Fix
If you just want to get unblocked right away:
- Wait 60–120 seconds, then retry your command
- Run
clawhub loginif you haven't authenticated yet - Avoid
--allflags — install skills one at a time
What Is the Clawhub Rate Limit?
Clawhub.ai enforces API rate limits to protect the registry from abuse and ensure availability for all users. When you make too many requests in a short window — typically when running clawhub install, clawhub update --all, or fetching skills in automation pipelines — the server returns a rate limit error.
The error typically looks like this in your terminal:
Error: rate limit exceeded
or:
clawhub install failed: HTTP 429 Too Many Requests
This is a server-side throttle, not a bug in your setup. It resets automatically after a short cooldown period.
Common Causes
1. clawhub update --all
Running update --all fires off one API request per installed skill simultaneously. If you have 20+ skills, this can easily exceed the rate limit in a single command.
2. Rapid back-to-back installs
Installing many skills in quick succession in a script:
clawhub install skill-a
clawhub install skill-b
clawhub install skill-c
# ...hits rate limit around here3. Multiple parallel processes
Running clawhub commands across multiple terminal windows, or in CI jobs that fan out in parallel, stacks up requests from the same IP.
4. Network retries on a flaky connection
A slow or unstable connection can cause the CLI to retry requests in a loop, burning through your limit faster than expected.
How to Fix It
Fix 1: Wait and retry
The simplest fix. The rate limit window resets within 60–120 seconds in most cases. Wait a minute, then run your command again.
# After waiting ~90 seconds:
clawhub install my-skillFix 2: Log in to your Clawhub account
Authenticated users get a higher rate limit than anonymous requests. If you haven't logged in:
clawhub login
clawhub whoami # confirm you're authenticatedThen retry your install or update.
Fix 3: Update skills one at a time
Instead of update --all, update skills individually:
clawhub update skill-a
clawhub update skill-bOr add a short delay between installs in a shell script:
for skill in skill-a skill-b skill-c; do
clawhub install "$skill"
sleep 3
doneFix 4: Check what's already installed
Before hitting the registry, check your local skills:
clawhub listYou might already have the skill installed or cached, meaning no new request is needed.
Fix 5: Use a custom registry
If you run your own Clawhub registry instance, point the CLI at it to bypass the public rate limits:
clawhub install my-skill --registry https://your-registry.example.com
# or set environment variable
export CLAWHUB_REGISTRY=https://your-registry.example.comHow to Avoid It
- Prefer specific installs over
--allupdates when possible - Add
sleep 2–5between installs in automation scripts - Always run
clawhub loginat the start of any CI/automation pipeline - Use
clawhub listbefore re-installing to check what's already present - Don't run clawhub in parallel across multiple processes on the same machine
Frequently Asked Questions
How long does the rate limit last?
Typically 60–120 seconds. In cases of very heavy sustained usage, up to 5 minutes. Simply wait and retry.
Does logging in help?
Yes. Authenticated requests have a higher rate limit threshold than anonymous ones. Run clawhub login to get a session token.
I only ran one command — why did I get rate limited?
A single clawhub update --all or an install of a large skill bundle can trigger multiple internal API calls (metadata fetch, file download, dependency resolution). This is normal and still counts toward your limit.
Can I self-host the registry to avoid rate limits entirely?
Yes. The --registry flag or CLAWHUB_REGISTRY environment variable lets you point the CLI at your own registry instance with no public rate limits.
Still seeing the error after 5+ minutes?
This may be a temporary outage on Clawhub.ai's side rather than a rate limit. Browse and discover skills here on ClawHub Skills Lib in the meantime — no API calls required.