| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
…d messages Right after initialize, the server may push a server-initiated request (e.g. roots/list when the client declared the roots capability) before the client has opened its GET /mcp stream. The session previously delegated to a MissingMcpTransportSession that failed immediately with Stream unavailable for session <id>, surfacing as an intermittent -32603/500 on the clients POST (seen in CI HttpServletStreamableIntegrationTests.testRootsNotificationWithEmptyRootsList). Changes: introduce package-private MissingListeningStreamException (subclass of IllegalStateException, same message) thrown by MissingMcpTransportSession; McpStreamableServerSession.sendRequest/sendNotification retry missing-stream failures with exponential backoff capped at 12 attempts (~5s); accept(notification) falls back to the retrying session facade when no stream is registered yet so handler-initiated pushes are covered too. Related: modelcontextprotocol#952, modelcontextprotocol#1061
| Back | FazBrowse Home | New Git URL |
Right after initialize, the server may push a server-initiated request (e.g. roots/list when the client declared the roots capability) before the client has opened its GET /mcp stream; the session then failed with Stream unavailable for session (intermittent -32603/500, seen in HttpServletStreamableIntegrationTests CI). sendRequest/sendNotification now retry missing-stream failures with bounded backoff (~5s) and accept(notification) routes handler-initiated pushes through the retrying session facade. Related: #952, #1061. New unit tests cover buffer-until-register, correlation, grace exhaustion, and the handler-push path. Happy to adapt the approach per maintainer guidance.
Fixes #1114