From 09ac0c4a69d9e377d3b926d4a381d358a5e2f726 Mon Sep 17 00:00:00 2001 From: simpleqt <89645338+simpleqt@users.noreply.github.com> Date: Mon, 7 Sep 2026 01:47:04 +0800 Subject: [PATCH] fix(everything): iterate the transports Map with for...of, not for...in for...in on a Map enumerates own enumerable properties of the object (none), so the SIGINT shutdown loop never ran and active session transports were never closed. Switched to for...of and reused the destructured transport instead of re-fetching it. --- src/everything/transports/streamableHttp.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/everything/transports/streamableHttp.ts b/src/everything/transports/streamableHttp.ts index 2e79abc554..2580c4ca29 100644 --- a/src/everything/transports/streamableHttp.ts +++ b/src/everything/transports/streamableHttp.ts @@ -225,10 +225,10 @@ process.on("SIGINT", async () => { console.log("Shutting down server..."); // Close all active transports to properly clean up resources - for (const sessionId in transports) { + for (const [sessionId, transport] of transports) { try { console.log(`Closing transport for session ${sessionId}`); - await transports.get(sessionId)!.close(); + await transport.close(); transports.delete(sessionId); } catch (error) { console.log(`Error closing transport for session ${sessionId}:`, error);