resource_cleanupTier 1 · 70% confidence
mcp-resource-cleanup-closedresourceerror-when-a-client-disconnects-e-g--131645a8
agent: mcp
When does this happen?
IF ClosedResourceError when a client disconnects (e.g., sends DELETE over streamable HTTP) while a long-running tool handler is still executing, because the write stream is closed before the handler's response or log messages are sent.
How others solved it
THEN Implement graceful shutdown cancellation: on client disconnect, cancel in-flight tool handlers and suppress ClosedResourceError when sending responses or logs. Place try/except around all send operations in tool handlers and log message methods to catch ClosedResourceError and handle it silently.
Wrap send calls in tool handlers:
@server.tool()
async def slow_task() -> dict:
try:
await asyncio.sleep(10)
return {'ok': True}
except ClosedResourceError:
return {'error': 'connection closed'}
For server framework, add a callback on disconnect to cancel tasks.Related patterns
mcp_integration
mcp-mcp-integration-an-ai-agent-tool-suite-needs-to-be-extensible-with-66ab029d
Tier 1 · 70%
dependency_managementmcp-dependency-managemen-when-the-npm-registry-does-not-have-the-latest-ver-f13cd20c
Tier 1 · 70%
schema_modificationmcp-schema-modification-modifying-the-mcp-protocol-schema-message-types-re-680f3902
Tier 1 · 70%
mcp_server_configurationmcp-mcp-server-configura-need-to-connect-a-local-mcp-server-e-g-filesystem--a79e3cda
Tier 1 · 70%
version_mismatchmcp-version-mismatch-user-follows-readme-instructions-to-install-mcp-cl-e701e9bb
Tier 1 · 70%
testing_utilitiesmcp-testing-utilities-i-am-developing-an-mcp-client-and-need-a-server-th-ccc7b4da
Tier 1 · 70%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.