litellm/tests/e2e/logging
Devin AI 25f257cc51 fix(logging): dedupe failure callbacks on streaming requests
Logging.has_run_logging returned early for every event type when
self.stream was True, so has_logged_async_failure / has_logged_sync_failure
were never set on streaming requests. Retried streamed calls re-enter
async_failure_handler once per attempt on the same logging object
(num_retries, router retries), and each attempt fired the failure
callbacks again, duplicating events to sinks like s3_v2 and Datadog.

Restrict the streaming early-return to the success event types, which
genuinely re-enter once per chunk, and keep the failure markers working
the same as non-streaming calls.

Resolves LIT-8542

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-24 18:03:20 +00:00
..
conftest.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
datadog_reader.py fix(mcp): honor an explicit null on toolset update, cover MCP lifecycle e2e (#40022) 2026-09-08 22:50:13 -07:00
gcs_reader.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
logging_client.py fix(otel v2): map completions, images, speech, transcription and moderation output onto the Langfuse generation output (#42394) 2026-09-21 21:57:44 -07:00
s3_reader.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
test_datadog_log_e2e.py fix(logging): dedupe failure callbacks on streaming requests 2026-09-24 18:03:20 +00:00
test_datadog_reader.py fix(mcp): honor an explicit null on toolset update, cover MCP lifecycle e2e (#40022) 2026-09-08 22:50:13 -07:00
test_gcs_log_e2e.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
test_langsmith_batch_serialization_e2e.py fix(langsmith): json.dumps with default=str so non-serializable metadata does not crash batch flush (#42424) 2026-09-22 12:21:11 -07:00
test_otel_trace_e2e.py fix(otel): honor SSL_CERT_FILE and ssl_verify in OTLP HTTP exporters (#42106) 2026-09-22 20:50:53 +00:00
test_otel_v2_langfuse_generation_output_e2e.py fix(otel v2): map rerank and search output and the OCR, image edit and search input onto the Langfuse generation (#42444) 2026-09-22 10:31:51 -07:00
test_prometheus_cardinality_e2e.py test(e2e): make MCP and prometheus e2e tests robust to data-plane sync lag (#34854) 2026-07-27 19:22:52 -07:00
test_prometheus_queue_time_e2e.py test(e2e): cover google-native generateContent framing and prometheus queue time (#34650) 2026-08-12 01:28:26 +00:00
test_s3_log_e2e.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
test_span_selection.py fix(e2e): assert on the gen-AI span that served the stream, not the span count (#36582) 2026-08-11 17:49:44 -07:00
test_team_langfuse_callback_e2e.py test(e2e): add logging e2e coverage (s3_v2, gcs_bucket, team langfuse callback, datadog failure) (#38552) 2026-08-29 09:43:44 -07:00
test_weave_log_e2e.py test(e2e): cover presidio post_call, tool_permission, and weave logging cells (#39279) 2026-09-05 13:03:28 -07:00
weave_reader.py test(e2e): cover presidio post_call, tool_permission, and weave logging cells (#39279) 2026-09-05 13:03:28 -07:00