mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-12 23:01:41 +00:00
fix(bedrock): strip client_metadata from additionalModelRequestFields
Responses API clients (e.g. Codex CLI) send a `client_metadata` field in the request body. This leaks through kwargs into Bedrock's `additionalModelRequestFields`, causing a 400 error: `client_metadata: Extra inputs are not permitted`. Strip it in `_prepare_request_params`, following the same pattern used for `parallel_tool_calls`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
26fcbc93e5
commit
bb131c86c2
2 changed files with 22 additions and 0 deletions
|
|
@ -1249,6 +1249,8 @@ class AmazonConverseConfig(BaseConfig):
|
|||
additional_request_params
|
||||
)
|
||||
|
||||
additional_request_params.pop("client_metadata", None)
|
||||
|
||||
return (
|
||||
inference_params,
|
||||
additional_request_params,
|
||||
|
|
|
|||
|
|
@ -4146,3 +4146,23 @@ def test_transform_response_finish_reason_stop_when_json_mode_filters_all_tools(
|
|||
|
||||
# finish_reason must be "stop", not "tool_calls"
|
||||
assert result.choices[0].finish_reason == "stop"
|
||||
|
||||
|
||||
def test_client_metadata_not_in_additional_model_request_fields():
|
||||
"""client_metadata from Responses API clients (e.g. Codex) must not leak into additionalModelRequestFields."""
|
||||
config = AmazonConverseConfig()
|
||||
model = "anthropic.claude-sonnet-4-5-20250929-v1:0"
|
||||
messages = [{"role": "user", "content": "Hello"}]
|
||||
|
||||
optional_params = {"client_metadata": {"client": "codex", "version": "0.121.0"}}
|
||||
|
||||
request_data = config.transform_request(
|
||||
model=model,
|
||||
messages=messages,
|
||||
optional_params=optional_params,
|
||||
litellm_params={},
|
||||
headers={},
|
||||
)
|
||||
|
||||
additional = request_data.get("additionalModelRequestFields", {})
|
||||
assert "client_metadata" not in additional
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue