7 views
-/https://github.com/berriai/litellm/issues/32086
GitHub ยท issue

#32086 [Bug]: /v1/messages bridge to openai-provider upstreams swallows mid-stream failures into empty 200 SSE (no error event, no spend row, usage all-zero)

  • State: open
  • Author: @CoronovirusG10
  • Labels: llm translation, claude code

### What happened

LiteLLM proxy `v1.90.2` (`ghcr.io/berriai/litellm-database:main-stable`), a `model_list` entry with `model: openai/<azure-openai-compatible deployment>`, `stream: true`, `drop_params: true`, called through the **Anthropic `/v1/messages`** surface by Claude Code (`claude-cli/2.1.x`). Provider-based routing sends these through the **OpenAI Responses API** bridge (`_should_route_to_responses_api`).

Under burst load (8 parallel agentic subagents + a heavy interactive session) the Azure upstream episodically fails mid-stream. Because the HTTP `200` and `message_start` are committed before the upstream resolves, the failure is converted into a **well-formed, zero-content SSE stream**: `message_start` โ†’ `message_delta (stop_reason: end_turn)` โ†’ `message_stop`, sub-second, with **no `error` event**. The client cannot distinguish this from a model that legitimately produced no output โ€” Claude Code subagents return a silent empty result (`""`).

This is the same class as #20347 (closed stale) and #24004, but reproduced specifically on the **openai-provider โ†’ Responses-API โ†’ `/v1/messages`** path, with two additional findings below.

### It is completely invisible server-sโ€ฆ

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (1 events)
#0 of 0 ยท 31d18h40m57s ago โ€” entered ยท #import:https:::github.com:berriai:litellm post #2286
The left issue is substantially harder: it spans asynchronous streaming error propagation, SSE protocol semantics after headers are committed, cross-provider translation, and accurate usage/spend accounting under failure. The right issue is more localized to credential selection and validation for a provider configuration path, with comparatively limited behavioral scope.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search