Incident: A log line that froze a stdio server
Module 5 · Incident file · About 30 minutes
What happened
On 1 May 2026 a developer, mdbro, opened issue #2527 on the official MCP Python SDK. Its title begins "FastMCP.__init__ clobbers root logger with INFO RichHandler" and ends "hangs stdio servers under back-pressure" (python-sdk issue #2527). Their server ran on mcp 1.27.0, Python 3.12.12 and macOS, started over stdio by a Node.js host, qwen-code.
The report traces a hang. Creating the server called configure_logging("INFO"), which attached a Rich handler on stderr to the root logger, the logger every other logger in the process passes its lines to. A library the tool used, the HTTP client httpx, then logged a line per request at INFO. The host did not read the server's stderr fast enough, so those lines could, in the issue's words, "fill the kernel's stderr SNDBUF and block the asyncio main thread on the next write(2)." A py-spy stack trace in the issue shows a call_tool handler stuck inside Rich's console write. The host eventually gave up on the server.
On 18 May 2026 a maintainer closed it: "Closing as a duplicate of #1656", naming the same root cause. Issue #1656, "FastMCP configures logging on init, which messes up application-level logging", was opened on 24 November 2025 against 1.22.0 and labelled a bug (python-sdk issue #1656). When we fetched it on 13 October 2026 it was still open; a comment of 5 October 2026 says the pull request meant to fix it, #2532, was closed without resolving it. The issues record no data loss: the cost was a server that stopped answering, and a debugging session with py-spy to find out why.