Skip to content

Commit 605832e

Browse files
committed
fix: narrow exception handling in _handle_json_response
Catch (httpx.StreamError, ValidationError) instead of bare Exception.
1 parent b6e62f1 commit 605832e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/mcp/client/streamable_http.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from anyio.abc import TaskGroup
1414
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
1515
from httpx_sse import EventSource, ServerSentEvent, aconnect_sse
16+
from pydantic import ValidationError
1617

1718
from mcp.client._transport import TransportStreams
1819
from mcp.shared._httpx_utils import create_mcp_http_client
@@ -311,7 +312,7 @@ async def _handle_json_response(
311312

312313
session_message = SessionMessage(message)
313314
await read_stream_writer.send(session_message)
314-
except Exception as exc:
315+
except (httpx.StreamError, ValidationError) as exc:
315316
logger.exception("Error parsing JSON response")
316317
error_data = ErrorData(code=PARSE_ERROR, message=f"Failed to parse JSON response: {exc}")
317318
error_msg = SessionMessage(JSONRPCError(jsonrpc="2.0", id=request_id, error=error_data))

0 commit comments

Comments
 (0)