From aa3ca1c3bee916cae9178c37eed10f469121a3d1 Mon Sep 17 00:00:00 2001 From: Gille <4317663+helix4u@users.noreply.github.com> Date: Tue, 11 Aug 2026 21:59:27 -0600 Subject: [PATCH] fix(agent): tolerate transport errors without requests --- agent/codex_runtime.py | 5 ++++- .../agent/test_codex_request_transport_diagnostics.py | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/agent/codex_runtime.py b/agent/codex_runtime.py index 34ef399b261ae..65cc3cd1a0d07 100644 --- a/agent/codex_runtime.py +++ b/agent/codex_runtime.py @@ -46,7 +46,10 @@ def _codex_request_failure_details(error: BaseException) -> tuple[int | None, st exception_classes.append(type(current).__name__) if request_body_bytes is None: - request = getattr(current, "request", None) + try: + request = getattr(current, "request", None) + except Exception: + request = None if request is not None: try: content = request.content diff --git a/tests/agent/test_codex_request_transport_diagnostics.py b/tests/agent/test_codex_request_transport_diagnostics.py index deea310fdb351..0cb4567d2a312 100644 --- a/tests/agent/test_codex_request_transport_diagnostics.py +++ b/tests/agent/test_codex_request_transport_diagnostics.py @@ -9,7 +9,16 @@ import httpx import pytest from openai import APIConnectionError -from agent.codex_runtime import run_codex_stream +from agent.codex_runtime import _codex_request_failure_details, run_codex_stream + + +def test_transport_failure_without_attached_request_reports_unknown_size(): + error = httpx.RemoteProtocolError("connection closed") + + request_body_bytes, exception_chain = _codex_request_failure_details(error) + + assert request_body_bytes is None + assert exception_chain == "RemoteProtocolError" def test_transport_failure_logs_exact_request_bytes_and_class_chain(caplog):