fix: Catch http errors #1308
Open
lorenss-m wants to merge 2 commits intomodelcontextprotocol:mainfrom
Open
Conversation
Contributor
Author
|
@Kludex bumping this -- really important for our remote server to include this, our library is forced to depend on our fork otherwise! |
felixweinberger
requested changes
Sep 23, 2025
Contributor
felixweinberger
left a comment
There was a problem hiding this comment.
Hi @lorenss-m thanks for this contribution!
There seem to be a few competing approaches to handle this issue: #1194, #1008
We probably want to resolve them once in the right place, I will aim to take a look this week.
| await self._handle_resumption_request(ctx) | ||
| else: | ||
| await self._handle_post_request(ctx) | ||
| except Exception as e: |
Contributor
There was a problem hiding this comment.
This is too broad of an error, we should be more specific about the type of Exception we handle here.
We should at least limit to HTTPStatusError if your problem is with HTTP errors specifically.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix: Propagate HTTP errors to client
Motivation and Context
HTTP request failures were not being properly communicated to clients, causing silent failures. This fix ensures errors are sent through the read stream so clients are notified when requests fail.
How Has This Been Tested?
Has been tested in production environments (used by https://github.com/hud-evals/hud-python with a remote server).
Breaking Changes
None - this is a backwards-compatible error handling improvement.
Types of changes
Checklist
Additional context
This change wraps the
handle_request_asyncfunction in a try-catch block and sends any exceptions toctx.read_stream_writerto ensure proper error propagation in the streamable HTTP transport layer.Example scenario where this fix is critical:
HTTP Error Codes (502, 503, 504, etc.)