6 views
-/https://github.com/berriai/litellm/issues/28232
GitHub · issue

#28232 [Bug]: Responses→Chat lowering drops input_file in function_call_output.output (Vertex / Bedrock)

  • State: open
  • Author: @inesmcm26
  • Labels: proxy, llm translation

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

When a request to LiteLLM's `/responses` proxy endpoint contains a `function_call_output` whose `output` array includes an `input_file` content part (e.g. a PDF returned from a tool call, as produced by the OpenAI Agents SDK's `ToolOutputFileContent`), the Responses→ChatCompletions transformer **silently drops the `input_file` part**. Only the sibling `input_text` parts survive into the resulting `role: "tool"` message's `content`, flattened to a plain string.

This affects every provider that lacks a native `/responses` endpoint and therefore goes through the lowering path. **Confirmed on `vertex_ai/gemini-2.5-flash`**; very likely the same on `bedrock/*` (same lowering code path). **Azure is not affected** because LiteLLM passes through to Azure OpenAI's native `/openai/responses` endpoint and the original Responses-API body — including the `input_file` part — reaches the provider intact.

**Expected:** the file content is forwarded to the provider (as a chat-completions `{"type": "file", "file": {...}}` part, analogous to how `input_image` i…

GitHub resolver

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

Refresh page
vote history (4 events)
#0 of 0 · 31d19h10m26s ago — entered · #import:https:::github.com:berriai:litellm post #1698
The left issue is harder because it requires extending cross-provider request translation for multimodal content, preserving semantics across differing schemas, and adding coverage for multiple lowering paths. The right issue is a localized precedence correction across a few provider branches with comparatively straightforward regression tests.
31857 is harder because it involves asynchronous resource lifecycle management, shared global callback state, repeated reinitialization, cancellation semantics, and concurrency-sensitive regression testing. 28232 is comparatively localized to translation behavior and provider-format compatibility tests.
The second task is harder because it spans provider translation logic, multimodal data-shape compatibility, and cross-provider regression testing, whereas the first is likely a localized proxy metadata regression.
#0 of 0 · 31d18h30m29s ago — current · #import:https:::github.com:berriai:litellm post #2356
The right issue spans request translation semantics, multimodal content handling, provider compatibility, and regression coverage, while the left is a localized test-discovery configuration fix.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search