From e1cb136cc34715a91ea45a1e08d47666f10c98e7 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 14 Apr 2026 21:30:50 +0000 Subject: [PATCH] fix(trinity-core): return 404 for stale sessions after restart When mcp-server restarts, activeSessions is cleared but Claude.ai may still hold the old session ID. Previously this fell to a generic 400 error. Now returns 404 with clear re-initialize message so clients know to create a fresh session. Chronicler #89 --- services/trinity-core/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/services/trinity-core/index.js b/services/trinity-core/index.js index da13767..3c9e3ca 100644 --- a/services/trinity-core/index.js +++ b/services/trinity-core/index.js @@ -233,6 +233,14 @@ app.all('/mcp', auth, async (req, res) => { }; const mcpServer = createMcpServer(); await mcpServer.connect(transport); + } else if (sessionId && !activeSessions.has(sessionId)) { + // Stale session (e.g. after service restart) — tell client to re-initialize + log(`StreamableHTTP stale session ${sessionId} — returning 404`); + return res.status(404).json({ + jsonrpc: '2.0', + error: { code: -32001, message: 'Session not found. Please re-initialize.' }, + id: null + }); } else if (!sessionId && req.method === 'GET') { // Legacy SSE client connecting via GET /mcp return legacySSE(req, res);