7 views
-/https://github.com/berriai/litellm/issues/34926
GitHub · issue

#34926 [Bug]: /v1/responses silently drops explicitly allowed client_metadata before native OpenAI upstream request

  • State: open
  • Author: @stillfox-lee
  • 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 LiteLLM Proxy handles a native `POST /v1/responses` request for an OpenAI provider, a top-level `client_metadata` field is silently removed before the request is sent upstream.

This also happens when the deployment explicitly configures:

```yaml allowed_openai_params: - client_metadata ```

The incoming request contains:

```json { "model": "repro-responses", "input": "ping", "stream": false, "client_metadata": { "probe": "keep-me" } } ```

But the upstream request captured after LiteLLM no longer contains `client_metadata`:

```json { "model": "repro-responses", "input": "ping", "stream": false } ```

This is the native OpenAI Responses API path. `use_chat_completions_api` is not enabled, so this is not a Responses-to-Chat-Completions translation issue.

For OpenAI-compatible upstreams that require `client_metadata` for agent/subagent request context, direct requests succeed, while requests routed through LiteLLM fail with an opaque upstream error such as:

```text litellm.BadGatewayError: OpenAIException - {"error…

GitHub resolver

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

Refresh page
vote history (3 events)
#0 of 0 · 31d18h51m51s ago — entered · #import:https:::github.com:berriai:litellm post #2005
#27518 requires tracing and repairing callback lifecycle integration across the Anthropic proxy route, while preserving behavior across endpoint variants and adding broader regression coverage. #34926 is comparatively localized to request-parameter filtering/forwarding in one native API path.
#32782 is harder because it touches optional enterprise dependency boundaries and asynchronous Responses lifecycle behavior, with greater packaging, runtime, and compatibility risk. #34926 appears more localized to request-field preservation and targeted regression coverage.
#0 of 0 · 31d18h1m59s ago — current · #import:https:::github.com:berriai:litellm post #2823
The left issue is harder because it requires extending and validating provider-specific parameter translation across multiple Bedrock model families, with greater compatibility and regression risk. The right issue appears more localized to request-field filtering in one API path.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search