From 55c415a1da943f6c2e4c373108e1ea297a7e5bf3 Mon Sep 17 00:00:00 2001 From: ayeshakhalid192007-dev Date: Tue, 21 Apr 2026 19:43:24 +0500 Subject: [PATCH] fix(browser): address review comments on Chrome MCP timeout handling --- extensions/browser/src/browser/chrome-mcp.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/browser/src/browser/chrome-mcp.ts b/extensions/browser/src/browser/chrome-mcp.ts index 3ee2dd93024..8429559fad9 100644 --- a/extensions/browser/src/browser/chrome-mcp.ts +++ b/extensions/browser/src/browser/chrome-mcp.ts @@ -44,7 +44,6 @@ const DEFAULT_CHROME_MCP_ARGS = [ ]; const CHROME_MCP_NEW_PAGE_TIMEOUT_MS = 5_000; const CHROME_MCP_NAVIGATE_TIMEOUT_MS = 20_000; -const CHROME_MCP_NAVIGATE_CALL_SAFETY_TIMEOUT_MS = 25_000; const sessions = new Map(); const pendingSessions = new Map>(); @@ -350,11 +349,12 @@ async function callTool( } catch (err) { // Transport/connection error or safety-net timeout — tear down session so it reconnects. // Transport-identity check prevents clobbering a replacement session created concurrently. + // Only close the client here if the timeout callback hasn't already done so. const cur = sessions.get(cacheKey); if (cur?.transport === session.transport) { sessions.delete(cacheKey); + await session.client.close().catch(() => {}); } - await session.client.close().catch(() => {}); throw err; } finally { if (timeoutHandle !== undefined) { @@ -507,7 +507,7 @@ export async function navigateChromeMcpPage(params: { url: params.url, timeout: resolvedTimeoutMs, }, - CHROME_MCP_NAVIGATE_CALL_SAFETY_TIMEOUT_MS, + resolvedTimeoutMs + 5_000, ); const page = await findPageById( params.profileName,