Skip to content

Commit efb0ea9

Browse files
authored
fix: Handle session id not found when restart server
2 parents bdd946d + bc385b2 commit efb0ea9

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/startHTTPServer.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,26 @@ const handleStreamRequest = async <T extends ServerLike>({
7676

7777
const body = await getBody(req);
7878

79-
if (sessionId && activeTransports[sessionId]) {
80-
transport = activeTransports[sessionId].transport;
81-
server = activeTransports[sessionId].server;
79+
if (sessionId) {
80+
const activeTransport = activeTransports[sessionId];
81+
if (!activeTransport) {
82+
res.setHeader("Content-Type", "application/json");
83+
res.writeHead(404).end(
84+
JSON.stringify({
85+
error: {
86+
code: -32001,
87+
message: "Session not found",
88+
},
89+
id: null,
90+
jsonrpc: "2.0",
91+
})
92+
);
93+
94+
return true;
95+
}
96+
97+
transport = activeTransport.transport;
98+
server = activeTransport.server;
8299
} else if (!sessionId && isInitializeRequest(body)) {
83100
// Create a new transport for the session
84101
transport = new StreamableHTTPServerTransport({
@@ -146,7 +163,7 @@ const handleStreamRequest = async <T extends ServerLike>({
146163
},
147164
id: null,
148165
jsonrpc: "2.0",
149-
}),
166+
})
150167
);
151168

152169
return true;

0 commit comments

Comments
 (0)