-
Notifications
You must be signed in to change notification settings - Fork 324
Description
Hi Michael, thanks for building Ralphy — it’s been working great so far.
I have a question about how --max-retries and --retry-delay behave when hitting Claude Code rate limits / quota resets.
What I’m seeing
I’m running Ralphy like this (to try to restart Ralphy every 15 minutes, 'indefinitely' until the 5-hour rate limit is reset):
ralphy --prd Tasks/tasks.md --retry-delay 900 --max-retries 99999
Ralphy works correctly for a long time, but once Claude Code hits a hard rate limit (message like):
You've hit your limit · resets 1pm
Ralphy immediately exits with:
[WARN] Temporary failure, stopping early (1/99999)
No retry delay is applied, and the process exits instead of waiting and retrying.
Expected vs actual behavior
I expected --retry-delay / --max-retries to cause Ralphy to sleep and retry periodically (e.g. every 15 minutes) until the quota resets.
Instead, Ralphy exits immediately on this kind of rate-limit/quota error.
Questions
- Is this behavior expected by design?
- i.e. are Claude quota / hard rate-limit errors intentionally treated as “stop early” and not retryable?
- If so, is there a built-in or recommended way to make Ralphy truly autonomous for long runs?
- For example: automatically wait N minutes and restart itself when hitting quota limits.
- If not built-in, would you consider:
- a flag like
--retry-on-quota - or an option to keep the process alive and retry after
--retry-delayeven for quota resets?
Right now the only way to achieve fully autonomous behavior seems to be wrapping Ralphy in an external shell loop that restarts it after sleeping, but I wanted to check whether there’s a native or intended approach first.
Happy to provide logs or test anything if useful.
Thanks again for the tool!