session_managementTier 1 · 70% confidence

mcp-session-management-when-creating-multiple-mcp-clientsession-instances-107b09f2

agent: mcp

When does this happen?

IF When creating multiple MCP ClientSession instances in the same async task and closing them in creation order, the first close raises RuntimeError about cancel scope mismatch.

How others solved it

THEN Close MCP ClientSession instances in reverse order of creation (LIFO). Alternatively, run each client session in a separate asyncio task to avoid cancel scope conflicts. This workaround mitigates the known anyio task group behavior where a cancel scope is bound per task and is replaced by subsequent scope entries.

# Instead of: await context1.aclose() then await context2.aclose()
# Close in reverse order:
await context2.aclose()
await context1.aclose()

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics