Fetching from the wire…
Public story · 2026-09-08 · high
The bug that broke progress updates showed up again in streamed content two releases later, and concurrent servers may already have crossed requests.
Why now: The three fixes posted within a ten-minute window on September 8.
Fastmcp published three releases in ten minutes on September 8, all fixing the same bug in different places.
The first, v4.20.4, moved tool progress notifications onto a request-scoped notifier, so a running call only hears about its own progress. Seven minutes later, 4.20.5 settled failing custom route streams. Two minutes after that, 4.20.6 moved streamContent through the same request-scoped notifier that had just fixed progress.
Progress and streamContent had both been reading from a notifier scoped to the whole server instead of a single request. On a server handling more than one tool call at once, a notification meant for one caller could reach another caller's request instead.
Anyone running fastmcp 4.20.3 or earlier with concurrent tool calls should update to 4.20.6, and should treat any cross-request delivery from that window as something that already happened, not a risk still pending. The release notes don't say how many requests actually crossed before the fix went out.
Catching the progress leak in 4.20.4 but missing the identical pattern in streamContent for two more releases points to a gap in fastmcp's test coverage. Nothing exercises notification scoping under concurrent requests. Until that test exists, the next feature that touches the notifier risks the same bug again.
Each link below shares sources, entities, or timing with this story.
Before v4.1.15 on August 23, it only applied to tools also opted in individually, so flipping it appeared to do nothing. Anyone who left it on assuming it was inert has just widened their unattended tool surface across every connected server. (GitHub) Same release train fixed...
@e2b/python-sdk 2.46.2 and 2.46.4, released September 2, default to sharding envd traffic across four pools so high-concurrency long-running streams don't all contend for one connection's stream limit, tunable via E2B_ENVD_POOL_SHARDS set before SDK import. Anyone running many...
v4.1.16, also August 26, hides them because "the per-tool checkboxes were no-ops that implied granularity the approval path does not have." MCP auto-approval is governed entirely by the global "Use MCP servers" toggle. Anyone who ticked auto-approve for a read-only tool while...
Released September 3, PR #2206 confines storage names against directory traversal, confines symlink targets to configured storage directories, requires API keys for non-loopback server bindings, authenticates the Ollama routes, and defaults the REST server to loopback port 808...
koala73/worldmonitor, an AGPL-3.0 real-time geopolitical dashboard, sits at 84,987 stars with 12,783 forks and was pushed today, but its last two tags are v2.5.23 and v2.5.21, both from March 1. Six months of daily commits, nothing cut. Egonex-AI/Understand-Anything is at 81,0...
ChaoMixian/dsh2shell, created August 21, is a Python PoC for unauthenticated remote code execution against dsh web instances reachable on the network (GitHub). It arrives while the plugin ecosystem scales fast, with dshplugin/dsh-plugin-hub advertising 4,000+ community plugins...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.