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) <noreply@anthropic.com>
This commit is contained in:
parent
2ff45b7439
commit
52848d7fd2
2 changed files with 3 additions and 3 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue