From cc36fe933d61ec4618a2dba492034495ad556c4d Mon Sep 17 00:00:00 2001 From: ajmallesh Date: Thu, 30 Oct 2025 10:28:35 -0700 Subject: [PATCH] fix: err handling for claude code session limit --- src/ai/claude-executor.js | 3 +++ src/error-handling.js | 1 + 2 files changed, 4 insertions(+) diff --git a/src/ai/claude-executor.js b/src/ai/claude-executor.js index cce87a2..186acc8 100644 --- a/src/ai/claude-executor.js +++ b/src/ai/claude-executor.js @@ -273,6 +273,9 @@ async function runClaudePrompt(prompt, sourceDir, allowedTools = 'Read', context // Check for API error patterns in assistant message content if (content && typeof content === 'string') { const lowerContent = content.toLowerCase(); + if (lowerContent.includes('session limit reached')) { + throw new PentestError('Session limit reached', 'billing', false); + } if (lowerContent.includes('api error') || lowerContent.includes('terminated')) { apiErrorDetected = true; console.log(chalk.red(` ⚠️ API Error detected in assistant response: ${content.trim()}`)); diff --git a/src/error-handling.js b/src/error-handling.js index 5b7f554..8556fb8 100644 --- a/src/error-handling.js +++ b/src/error-handling.js @@ -134,6 +134,7 @@ export const isRetryableError = (error) => { message.includes('invalid prompt') || message.includes('out of memory') || message.includes('permission denied') || + message.includes('session limit reached') || message.includes('invalid api key')) { return false; }