From 0a374fc20aa5205534f9a8f3e3d23c450351065a Mon Sep 17 00:00:00 2001 From: Matt <77928207+mattzcarey@users.noreply.github.com> Date: Thu, 4 Dec 2025 09:56:32 +0000 Subject: [PATCH] fix: release HTTP connections after POST responses (#1214) Co-authored-by: Konstantin Konstantinov --- src/client/sse.ts | 3 +++ src/client/streamableHttp.ts | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/client/sse.ts b/src/client/sse.ts index 2b066195..f0e91ff2 100644 --- a/src/client/sse.ts +++ b/src/client/sse.ts @@ -281,6 +281,9 @@ export class SSEClientTransport implements Transport { throw new Error(`Error POSTing to endpoint (HTTP ${response.status}): ${text}`); } + + // Release connection - POST responses don't have content we need + await response.body?.cancel(); } catch (error) { this.onerror?.(error as Error); throw error; diff --git a/src/client/streamableHttp.ts b/src/client/streamableHttp.ts index 8146b627..6473ca48 100644 --- a/src/client/streamableHttp.ts +++ b/src/client/streamableHttp.ts @@ -592,8 +592,12 @@ export class StreamableHTTPClientTransport implements Transport { this.onmessage?.(msg); } } else { + await response.body?.cancel(); throw new StreamableHTTPError(-1, `Unexpected content type: ${contentType}`); } + } else { + // No requests in message but got 200 OK - still need to release connection + await response.body?.cancel(); } } catch (error) { this.onerror?.(error as Error);