From 0aa86ad08ff88e976aee53c841709c8d4184e704 Mon Sep 17 00:00:00 2001 From: Kevin Malana Date: Thu, 9 Apr 2026 10:06:25 +0000 Subject: [PATCH] fix: log retry count at INFO level (#2404) Replace debug-only 'X retries left' logs with a single INFO-level log that includes the retry count (retries_taken) and max_retries in the existing 'Retrying request to ...' message. No increase in log verbosity, just richer context at INFO level. --- src/openai/_base_client.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/openai/_base_client.py b/src/openai/_base_client.py index a1d0960700..2dee1e3135 100644 --- a/src/openai/_base_client.py +++ b/src/openai/_base_client.py @@ -1102,13 +1102,8 @@ def _sleep_for_retry( self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None ) -> None: remaining_retries = max_retries - retries_taken - if remaining_retries == 1: - log.debug("1 retry left") - else: - log.debug("%i retries left", remaining_retries) - timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None) - log.info("Retrying request to %s in %f seconds", options.url, timeout) + log.info("Retrying request to %s in %f seconds (retry %d of %d)", options.url, timeout, retries_taken, max_retries) time.sleep(timeout) @@ -1713,13 +1708,8 @@ async def _sleep_for_retry( self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None ) -> None: remaining_retries = max_retries - retries_taken - if remaining_retries == 1: - log.debug("1 retry left") - else: - log.debug("%i retries left", remaining_retries) - timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None) - log.info("Retrying request to %s in %f seconds", options.url, timeout) + log.info("Retrying request to %s in %f seconds (retry %d of %d)", options.url, timeout, retries_taken, max_retries) await anyio.sleep(timeout)