Suppress rate limit (429) errors in cron system messages
Resolved 💬 2 comments Opened Feb 5, 2026 by udiedrichsen Closed Feb 5, 2026
Problem
When cron jobs hit API rate limits (HTTP 429), every failed attempt is shown as a system message to the user:
System: [2026-02-05 07:32:23 UTC] Cron: HTTP 429 rate_limit_error: This request would exceed your account's rate limit. Please try again later.
System: [2026-02-05 07:34:25 UTC] Cron: HTTP 429 rate_limit_error: ...
System: [2026-02-05 07:35:24 UTC] Cron: HTTP 429 rate_limit_error: ...
(... 20 more identical messages ...)
This creates noise and a poor UX when there's a temporary rate limit issue. Users see a flood of identical error messages.
Proposed Solution
Option A (preferred): Silently retry rate limit errors without displaying system messages.
- Detect 429 responses from the API
- Implement exponential backoff retry (e.g., 30s → 60s → 120s → max 5min)
- Do NOT surface these as system messages — the user doesn't need to know
- Only surface an error if retries are exhausted after N attempts (e.g., 5)
Alternative Considered
- Deduplicate errors: Show "429 Rate Limit" max once per hour
- This still creates some noise but is better than current behavior
Impact
- Cleaner conversation history
- Less confusion for users who see repeated identical errors
- Graceful handling of temporary API capacity issues
Environment
- OpenClaw with isolated cron sessions using agentTurn payloads
- Multiple cron jobs can trigger close together, causing rate limit spikes
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗