← Home

Troubleshooting

ClawHub Rate Limit (429) — How to Fix "Rate Limit Exceeded"

If you see ClawHub /api/v1/download failed (429): Rate limit exceeded when OpenClaw installs a skill, you have used up ClawHub's per-minute request limit, usually because many people share your IP address. This guide explains why it happens and three ways to get unblocked.

What the Error Looks Like

OpenClaw prints the ClawHub path, the status and ClawHub's own message:

ClawHub /api/v1/download failed (429): Rate limit exceeded (resets in 34s) Sign in for higher rate limits.

429 means "Too Many Requests". The (resets in 34s) part is how long until your limit refills, taken from ClawHub's RateLimit-Reset or Retry-After header, so it only appears when ClawHub sends one. OpenClaw adds the last sentence, Sign in for higher rate limits, only when it sent no ClawHub token with the request.

Why Does This Happen?

ClawHub is the registry OpenClaw installs skills and plugins from. It limits requests per minute. Requests without a token are counted against your IP address, and requests with a valid token are counted against your ClawHub account. ClawHub's published limits, checked on 17 October 2026:

Request typeWithout a token (per IP)With a token (per account)
Downloads (skill and plugin installs)1,200 / min6,000 / min
Reads (search, details)3,000 / min12,000 / min

Those numbers are generous for one person, so a 429 usually comes from one of these:

  • Shared IP: cloud servers, corporate VPNs, campus networks and carrier-grade NAT put many users behind one address, and every anonymous request from that address counts against the same limit. ClawHub's own troubleshooting docs point to this.
  • Retry loops: a script or agent that retries the moment a request fails uses up the fresh allowance as soon as it refills, so the next real install hits the limit again.
  • Bulk installs: a setup script that reinstalls dozens of skills on every start can use up a shared IP's allowance quickly.

Three Ways to Fix It

Fix 1: Wait for the Reset

Read the (resets in Ns) value in the error and wait that long before trying again. Limits are per minute, so the wait is under a minute; if the error shows no reset time, wait a full minute. If you script installs, wait for that delay plus a few random seconds instead of retrying at once.

Fix 2: Give OpenClaw a ClawHub Token

With a token, your requests count against your own account instead of a shared IP, and the download limit is five times higher. OpenClaw reads the token from the CLAWHUB_TOKEN environment variable (CLAWHUB_AUTH_TOKEN also works).

  1. Sign in at clawhub.ai with GitHub.
  2. Open Settings → API tokens and create a token. ClawHub tokens start with clh_.
  3. Add it to OpenClaw's global env file, ~/.openclaw/.env, then restart the gateway so installs your agent starts on its own use it too:
    echo 'CLAWHUB_TOKEN=clh_your_token' >> ~/.openclaw/.env
    openclaw gateway restart

Two places that do not work: a .env file in your workspace or project folder, where OpenClaw deliberately ignores ClawHub variables, and an export in a terminal, which reaches only commands started from that terminal and not the gateway running in the background.

If you already use the ClawHub CLI, signing in there works as well. OpenClaw falls back to the token that clawhub login saves when no environment variable is set:

npm i -g clawhub
clawhub login
clawhub whoami

Fix 3: Use a Different Network

Without a token, the limit belongs to your IP address. Switching to a network that you do not share with many other people, such as a phone hotspot or home Wi-Fi instead of a corporate VPN, gives you a fresh allowance. On a cloud server, a token is the better fix, because the server's IP may be shared or reused.

Preventing Future 429s

  • Keep a token set on any machine that installs skills regularly, especially servers and machines behind a VPN.
  • Install in small batches rather than reinstalling everything from a script on every start.
  • Back off using the reset time ClawHub sends. Never retry a 429 in a tight loop.

If the Error Persists

  • The message still ends with "Sign in for higher rate limits". OpenClaw did not send a token. Check that the token is in ~/.openclaw/.env (not a workspace .env), that the line reads CLAWHUB_TOKEN=clh_... with no spaces, and that you restarted the gateway.
  • The token was revoked or mistyped. ClawHub then counts the request against your IP again, as if there were no token. Create a new token, or run clawhub whoami to check the one saved by clawhub login.
  • You still hit 429 with a working token. The limit is shared across everything that uses your ClawHub account, so check for other machines or scripts using the same token, and for a retry loop.

Managed Hosting Alternative

If you would rather not run OpenClaw on your own machine at all, OpenClaw Launch runs your agent as a managed instance, with the server, updates and chat app connections handled for you.

Related Guides

Skip Registry Plumbing — Use Managed Hosting

OpenClaw Launch runs your agent as a managed instance, so there is no server to set up or update.

Deploy on OpenClaw Launch