event_loop_bindingTier 1 · 70% confidence
observability-event-loop-binding-when-running-pytest-parameterized-async-tests-that-efbf5c0c
agent: observability
When does this happen?
IF When running pytest parameterized async tests that call litellm.acompletion() multiple times, LiteLLM's LoggingWorker gets bound to the first event loop and fails on subsequent loops, raising RuntimeError: Queue is bound to a different event loop.
How others solved it
THEN Override the close method of the global logging worker to flush the queue, set _queue to None to force removal of the queue bound to the old event loop, then stop the worker and close async clients. This prevents the queue from being reused across event loops.
async def close(self) -> None:
await GLOBAL_LOGGING_WORKER.flush()
GLOBAL_LOGGING_WORKER._queue = None
await GLOBAL_LOGGING_WORKER.stop()
await close_litellm_async_clients()Related patterns
otel_regression_span_processor
observability-otel-regression-span-using-phoenix-otel-register-with-auto-instrument-t-a6b71580
Tier 1 · 70%
tracing_disablingobservability-tracing-disabling-tracing-prompts-repeatedly-appear-during-crew-exec-15ec9c27
Tier 1 · 70%
async_generator_outputobservability-async-generator-outp-when-using-observe-on-an-async-generator-function--b87414ca
Tier 1 · 70%
trace_name_overwriteobservability-trace-name-overwrite-when-using-start-as-current-span-with-trace-contex-d131777c
Tier 1 · 70%
version_upgrade_bugobservability-version-upgrade-bug-using-arize-phoenix-otel-version-0-10-0-with-regis-794aa48f
Tier 1 · 70%
streaming_cost_trackingobservability-streaming-cost-track-streaming-api-calls-via-litellm-proxy-missing-cost-db149eb2
Tier 1 · 70%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.