Uh oh!
There was an error while loading. Please reload this page.
fix(mcp): retire pooled connections after consecutive request timeouts - #5821
Conversation
Circuit breaker for the half-open-transport gap left by #5817: a lone timeout still keeps the session warm (retiring on every timeout caused the connect/stall/reconnect churn), but two consecutive timeouts with no healthy request in between retire the connection so a genuinely half-open transport can't serve repeated 30s failures until the liveness ping catches it. A healthy release resets the count. Matches the LibreChat pattern of counting connection-level failures rather than reacting to one.
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview A single request timeout still keeps the session warm (avoiding the connect/stall/reconnect churn from retiring on every timeout).
Reviewed by Cursor Bugbot for commit 67618a9. Configure here. |
Greptile SummaryThis PR adds a timeout circuit breaker for pooled MCP connections. The main changes are:
Confidence Score: 5/5The updated timeout handling looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix(mcp): classify TimeoutError-named ab..." | Re-trigger Greptile |
Uh oh!
There was an error while loading. Please reload this page.
…uit breaker AbortSignal.timeout / undici surface a DOMException named TimeoutError whose message lacks 'timed out'; without this the breaker treated it as a healthy release and reset the streak. Adds name-based detection (incl. cause) + test.
waleedlatif1
commented
Jul 21, 2026
waleedlatif1
commented
Jul 21, 2026
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 67618a9. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Summary
withServerClientnow reportssawTimeouton release; dead-connection errors still poison immediately, benign errors still keep the connection warm.Type of Change
Testing
(poison=false, sawTimeout=true).Checklist