Skip to content

Conversation

@findleyr
Copy link
Contributor

@findleyr findleyr commented Sep 9, 2025

Previously, the error message received from ClientSession.Wait would only report the closeErr, which would often be nil even if the client transport was broken. Wait should return the reason the session terminated, if abnormal.

I'm not sure of the exact semantics of this, but surely returning nil is less useful than returning a meaningful non-nil error. We can refine our handling of errors once we have more feedback.

Also add a test for client termination on HTTP server shutdown, described in #265. This should work as long as (1) the session is stateful (with a hanging GET), or (2) the session is stateless but the client has a keepalive ping.

Also: don't send DELETE if the session was terminated with 404; +test.

Fixes #265

Previously, the error message received from ClientSession.Wait would
only report the closeErr, which would often be nil even if the client
transport was broken. Wait should return the reason the session
terminated, if abnormal.

I'm not sure of the exact semantics of this, but surely returning nil is
less useful than returning a meaningful non-nil error. We can refine our
handling of errors once we have more feedback.

Also add a test for client termination on HTTP server shutdown,
described in modelcontextprotocol#265. This should work as long as (1) the session is
stateful (with a hanging GET), or (2) the session is stateless but the
client has a keepalive ping.

Also: don't send DELETE if the session was terminated with 404; +test.

Fixes modelcontextprotocol#265
@findleyr findleyr marked this pull request as ready for review September 9, 2025 21:26
@findleyr findleyr merged commit 728e0e3 into modelcontextprotocol:main Sep 10, 2025
5 checks passed
@findleyr findleyr deleted the waiterr branch September 17, 2025 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

session.wait() seems to be not effective

2 participants