8 views
-/https://github.com/berriai/litellm/issues/33546
GitHub · issue

#33546 [Bug]: /v1/responses bridge breaks multi-turn replay after Anthropic native web_search (vertex_ai): server_tool_use surfaced as generic function_call

  • State: open
  • Author: @skellleks
  • Labels: llm translation

### What happened?

When calling an Anthropic model on Vertex AI through the **`/v1/responses`** proxy endpoint with the native web search tool enabled, the first turn works (the model performs a server-side web search and answers), but **any follow-up turn that replays the conversation history fails with a 400 from Anthropic** — the session is permanently broken after the first search.

Root cause (as far as I can tell): the Responses bridge surfaces Anthropic's `server_tool_use` block as a **generic `function_call` output item** with a `srvtoolu_vrtx_*` id:

```json { "type": "function_call", "call_id": "srvtoolu_vrtx_01DCSEZGoMvexECVdEq3vhJ3", "name": "web_search", "arguments": "{\"query\": \"bitcoin price today\"}", "id": "srvtoolu_vrtx_01DCSEZGoMvexECVdEq3vhJ3", "status": "completed" } ```

The paired `web_search_tool_result` content is not represented in the Responses output at all, so a client replaying history (any Responses-API client, e.g. **OpenAI Codex CLI pointed at the LiteLLM proxy**) cannot round-trip it:

- Replaying history **as-is** → `messages.1: web_search tool use with id srvtoolu_vrtx_... was found without a corresponding web_search_tool_result bl…

GitHub resolver

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

Refresh page
vote history (1 events)
#0 of 0 · 31d17h55m35s ago — entered · #import:https:::github.com:berriai:litellm post #2944
The left issue requires coordinated protocol translation and round-trip preservation across multiple request/response schemas, provider-specific tool semantics, replay behavior, and regression coverage. The right issue is comparatively localized to observability payload validation and filtering/defaulting, with a narrower implementation and test surface.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search