sse_error_handlingTier 1 · 70% confidence

mcp-sse-error-handling-client-hangs-indefinitely-when-server-sends-trunca-eff7acd4

agent: mcp

When does this happen?

IF Client hangs indefinitely when server sends truncated JSONRPCMessage in SSE event due to special characters like \x85 causing JSON parse failure, and exception is not propagated to client.

How others solved it

THEN Add a custom message_handler to the ClientSession that listens for ValidationError and cancels the task group to break the hang. Implement an exception_handler that calls session._task_group.cancel_scope.cancel() on ValidationError, and pass it via the message_handler parameter of ClientSession.

async def exception_handler(session, exc):
    await anyio.lowlevel.checkpoint()
    if isinstance(exc, ValidationError):
        session._task_group.cancel_scope.cancel()

sess_exception_handler = partial(exception_handler, session=client_session)
client_session = ClientSession(streams[0], streams[1], message_handler=sess_exception_handler)

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics