From 52848d7fd2fcf14936d86d9c633d88b87711724d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=82CHES?= Date: Mon, 16 Mar 2026 21:03:13 -0600 Subject: [PATCH] fix: raise maxDelayMs default from 60s to 300s (#756) (#773) Anthropic rate limit reset windows are typically 60-120s. The previous 60s default, combined with the +1s buffer in extractRetryAfterMs(), meant that virtually all rate limit retries were immediately abandoned. 300s (5 min) covers the vast majority of rate limit windows and lets the built-in retry logic work as intended. Co-authored-by: Claude Opus 4.6 (1M context) --- packages/pi-coding-agent/src/core/agent-session.ts | 2 +- packages/pi-coding-agent/src/core/settings-manager.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/pi-coding-agent/src/core/agent-session.ts b/packages/pi-coding-agent/src/core/agent-session.ts index c856e9229..bd7c00fe8 100644 --- a/packages/pi-coding-agent/src/core/agent-session.ts +++ b/packages/pi-coding-agent/src/core/agent-session.ts @@ -2553,7 +2553,7 @@ export class AgentSession { if (message.retryAfterMs !== undefined) { const cap = settings.maxDelayMs > 0 ? settings.maxDelayMs : Infinity; if (message.retryAfterMs > cap) { - // Server wants us to wait longer than our max — give up immediately + // Server wants us to wait longer than maxDelayMs — give up to let auto-mode handle recovery this._emit({ type: "auto_retry_end", success: false, diff --git a/packages/pi-coding-agent/src/core/settings-manager.ts b/packages/pi-coding-agent/src/core/settings-manager.ts index 8575dc08a..665b556b2 100644 --- a/packages/pi-coding-agent/src/core/settings-manager.ts +++ b/packages/pi-coding-agent/src/core/settings-manager.ts @@ -20,7 +20,7 @@ export interface RetrySettings { enabled?: boolean; // default: true maxRetries?: number; // default: 3 baseDelayMs?: number; // default: 2000 (exponential backoff: 2s, 4s, 8s) - maxDelayMs?: number; // default: 60000 (max server-requested delay before failing) + maxDelayMs?: number; // default: 300000 (max server-requested delay before failing) } export interface TerminalSettings { @@ -752,7 +752,7 @@ export class SettingsManager { enabled: this.getRetryEnabled(), maxRetries: this.settings.retry?.maxRetries ?? 3, baseDelayMs: this.settings.retry?.baseDelayMs ?? 2000, - maxDelayMs: this.settings.retry?.maxDelayMs ?? 60000, + maxDelayMs: this.settings.retry?.maxDelayMs ?? 300000, }; }