From 5226401644dbbe88bc537991458dffdd0d659124 Mon Sep 17 00:00:00 2001 From: mateo-berri <277851410+mateo-berri@users.noreply.github.com> Date: Thu, 27 Aug 2026 11:05:11 +0000 Subject: [PATCH] fix(proxy): keep the direct deferred-logging attribute write The Any-reduction pass routed the deferred-logging teardown through a new Logging.clear_deferred_logging_enqueue() helper. Callers in the request path hand this function a MagicMock in tests, which absorbs the method call and leaves _enqueue_deferred_logging set, so three deferred-guardrail-logging assertions failed. Restore the direct attribute write and drop the helper. --- litellm/litellm_core_utils/litellm_logging.py | 3 --- litellm/proxy/common_request_processing.py | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index c1dca253c06..3018f0c4d24 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -563,9 +563,6 @@ class Logging(LiteLLMLoggingBaseClass): self._defer_async_logging: bool = False self._enqueue_deferred_logging: Callable[[], None] | None = None - def clear_deferred_logging_enqueue(self) -> None: - self._enqueue_deferred_logging = None - def process_dynamic_callbacks(self): """ Initializes CustomLogger compatible callbacks in self.dynamic_* callbacks diff --git a/litellm/proxy/common_request_processing.py b/litellm/proxy/common_request_processing.py index 42969b319b5..8fb01a6a766 100644 --- a/litellm/proxy/common_request_processing.py +++ b/litellm/proxy/common_request_processing.py @@ -3046,7 +3046,7 @@ class ProxyBaseLLMRequestProcessing: _enqueue_fn: Final = getattr(logging_obj, "_enqueue_deferred_logging", None) if _enqueue_fn is None: return - logging_obj.clear_deferred_logging_enqueue() + logging_obj._enqueue_deferred_logging = None if exception_raised: return try: