Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/claude_agent_sdk/_internal/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,13 @@ async def _read_messages(self) -> None:
raise # Re-raise to properly handle cancellation
except Exception as e:
logger.error(f"Fatal error in message reader: {e}")

# If there are pending control requests, deliver the exception to them
# This prevents hanging when deserialization fails for control responses
for request_id, event in self.pending_control_responses.items():
self.pending_control_results[request_id] = e
event.set()

# Put error in stream so iterators can handle it
await self._message_send.send({"type": "error", "error": str(e)})
finally:
Expand Down