{"version":"2.1.304","anchor":"usage-rate-limit-message-shows-hold-time","canonical_anchor":"usage-rate-limit-message-shows-hold-time","heading":"\/usage now says how long its rate limit lasts","tier":"notice","area":"Usage & Limits","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304\/e\/usage-rate-limit-message-shows-hold-time","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304","markdown":"### \/usage now says how long its rate limit lasts\n\nWhen the usage endpoint is rate limited, \/usage now shows when you can try again instead of a generic 'try again in a moment'\n\n**What**\n\n`\/usage` shows your session cost, plan usage limits and activity stats. It gets this information from a usage endpoint, an address on Anthropic's servers. When that endpoint refuses because of too many requests (an HTTP 429 response), Claude Code now tells you when you can try again.\n\n- After a 429, Claude Code makes an extra lookup and adds a `heldUntilMs` value, the time the hold ends, to its 'unavailable' result. That result used to carry only `status` and `rateLimitedVia`. If the extra lookup fails, the error is ignored.\n\n- When `heldUntilMs` is known, the message is built from that time and says the endpoint is rate limited until then, using a new helper that formats the reset time.\n\n- When it is not known, you still see the old fixed text: 'Usage endpoint is rate limited. Please try again in a moment.'\n\nSeparately, the help text for `--debug` now gives the examples `--debug=hooks,mcp` and `--debug='!hooks,!mcp'` for filtering debug output by category.\n\n**Why**\n\nYou get a concrete wait time instead of guessing how long to wait before running `\/usage` again.\n\n- Area: Usage & Limits\n- Names: `\/usage`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}