[v1.x] Buffer per-request StreamableHTTP streams; store priming event before dispatch - #2948
Merged
Merged
Claude / Claude Code Review
completed
Jun 22, 2026 in 17m 46s
Code review found 2 potential issues
Found 5 candidates, confirmed 2. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 0 |
| 🟡 Nit | 1 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🟡 Nit | src/mcp/server/streamable_http.py:612-623 |
_sse_stream_writers entry leaks when SSE setup fails before _run_sse_writer starts |
Annotations
Check warning on line 623 in src/mcp/server/streamable_http.py
claude / Claude Code Review
_sse_stream_writers entry leaks when SSE setup fails before _run_sse_writer starts
If the SSE branch's "SSE response error" except path fires before sse-starlette ever invokes the data_sender_callable, the entry registered in `self._sse_stream_writers[request_id]` is never popped — only `_run_sse_writer`'s `finally` and `close_sse_stream()` remove it — leaving a stale closed writer in the per-session dict for the transport's lifetime. This gap also existed in the pre-PR code, but since this block is rewritten here, adding `self._sse_stream_writers.pop(request_id, None)` to the
Loading