Skip to content
Closed
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
16 changes: 14 additions & 2 deletions src/claude_agent_sdk/_internal/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,13 @@ async def _handle_control_request(self, request: SDKControlRequest) -> None:
"response": response_data,
},
}
await self.transport.write(json.dumps(success_response) + "\n")
try:
await self.transport.write(json.dumps(success_response) + "\n")
except Exception as write_err:
# Transport not ready (likely during cleanup) - log but don't fail
logger.debug(
f"Could not write control response (transport not ready): {write_err}"
)

except Exception as e:
# Send error response
Expand All @@ -312,7 +318,13 @@ async def _handle_control_request(self, request: SDKControlRequest) -> None:
"error": str(e),
},
}
await self.transport.write(json.dumps(error_response) + "\n")
try:
await self.transport.write(json.dumps(error_response) + "\n")
except Exception as write_err:
# Transport not ready (likely during cleanup) - log but don't fail
logger.debug(
f"Could not write error response (transport not ready): {write_err}"
)

async def _send_control_request(self, request: dict[str, Any]) -> dict[str, Any]:
"""Send control request to CLI and wait for response."""
Expand Down