From 44d3f8d858a5960be4998d05b081d237c635613d Mon Sep 17 00:00:00 2001 From: Ashwin Madavan Date: Mon, 4 May 2026 11:50:39 -0500 Subject: [PATCH] fix(ping): exit ping loop cleanly when session stream is closed (#4087) --- src/fastmcp/server/middleware/ping.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/fastmcp/server/middleware/ping.py b/src/fastmcp/server/middleware/ping.py index a8e35bf2d..0fa3966fb 100644 --- a/src/fastmcp/server/middleware/ping.py +++ b/src/fastmcp/server/middleware/ping.py @@ -65,6 +65,9 @@ class PingMiddleware(Middleware): try: while True: await anyio.sleep(self.interval_ms / 1000) - await session.send_ping() + try: + await session.send_ping() + except anyio.ClosedResourceError: + return finally: self._active_sessions.discard(session_id)