10 views
-/https://github.com/berriai/litellm/issues/24158
GitHub · issue

#24158 [Bug]: Bedrock rejects requests without tools= parameter, even for non-tool-use completions

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

### What happened?

When making a request to a Bedrock Claude model **without** the `tools=` parameter, LiteLLM throws an `UnsupportedParamsError` instead of processing the request normally.

**Error message:** ``` litellm.UnsupportedParamsError: Bedrock doesn't support tool calling without `tools=` param specified. Pass `tools=` param OR set `litellm.modify_params = True` // `litellm_settings::modify_params: True` to add dummy tool to the request. Received Model Group=us.anthropic.claude-opus-4-5-20251101-v1:0 Available Model Group Fallbacks=None ```

This error occurs on legitimate requests that simply don't need tools - for example, conversation summarization/compaction calls made by AI assistants when approaching context limits.

### Expected behavior

LiteLLM should handle requests without `tools=` parameter normally, just like direct Bedrock/Claude API calls work. The Bedrock Converse API supports requests without tools.

### The suggested workaround is problematic

The error message suggests using `modify_params = True`, but this workaround has its own issues - see #17990 where `modify_params = True` breaks prefix handling in Bedrock. Users shouldn't have to choose between t…

GitHub resolver

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

Refresh page
vote history (2 events)
#0 of 0 · 31d18h37m24s ago — entered · #import:https:::github.com:berriai:litellm post #2240
The right issue is harder because it spans frontend UX, backend state management, deployment grouping, routing behavior, permissions, concurrency, and end-to-end testing. The left issue is comparatively localized to provider request translation and regression coverage, though it carries compatibility risk.
#0 of 0 · 31d18h34m39s ago — current · #import:https:::github.com:berriai:litellm post #2285
#30139 is harder because it crosses passthrough response normalization, streaming/error handling, and ASGI protocol behavior, with intermittent state-dependent failures requiring broader integration testing. #24158 is comparatively localized to Bedrock request-parameter handling with a narrower compatibility and regression-test surface.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search