From c261aef6dafbc2f6aee65acaae3194713eb6f177 Mon Sep 17 00:00:00 2001 From: TA Date: Fri, 20 Feb 2026 15:23:41 +0700 Subject: [PATCH] fix: add forward compatibility for unknown message types Skip unknown message types with a warning log instead of crashing. This makes the SDK resilient against future CLI updates. --- src/claude_agent_sdk/_internal/client.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/claude_agent_sdk/_internal/client.py b/src/claude_agent_sdk/_internal/client.py index 90f535fb..c9d1f657 100644 --- a/src/claude_agent_sdk/_internal/client.py +++ b/src/claude_agent_sdk/_internal/client.py @@ -1,9 +1,11 @@ """Internal client implementation.""" +import logging from collections.abc import AsyncIterable, AsyncIterator from dataclasses import asdict, replace from typing import Any +from .._errors import MessageParseError from ..types import ( ClaudeAgentOptions, HookEvent, @@ -15,6 +17,8 @@ from .transport import Transport from .transport.subprocess_cli import SubprocessCLITransport +logger = logging.getLogger(__name__) + class InternalClient: """Internal client implementation.""" @@ -138,7 +142,15 @@ async def process_query( # Yield parsed messages async for data in query.receive_messages(): - yield parse_message(data) + try: + yield parse_message(data) + except MessageParseError as e: + logger.warning( + "Skipping unknown message type: %s. " + "This may be due to a newer CLI version. " + "Consider upgrading the SDK.", + e, + ) finally: await query.close()