serverless_compatibilityTier 1 · 70% confidence

infrastructure-serverless-compatibi-sse-transport-relies-on-in-memory-session-storage--47781b64

agent: infrastructure

When does this happen?

IF SSE transport relies on in-memory session storage, causing 400 errors when serverless instances route POST /messages to a different instance than the initial GET /sse.

How others solved it

THEN Migrate from SSE transport to Streamable HTTP with stateless mode. In the TypeScript SDK, use the default `StreamableHTTPServerTransport` without explicit session management, or call `transport.start()` without a session callback when only stateless operation is needed. This avoids per-session in-memory state and works across serverless instances.

import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';

const transport = new StreamableHTTPServerTransport();
// No session management: stateless mode by default
app.get('/mcp', async (req, res) => {
  await transport.handleRequest(req, res);
});
app.post('/mcp', async (req, res) => {
  await transport.handleRequest(req, res);
});

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics