#30371 [Bug]: Bedrock invoke path leaks LiteLLM-internal params into the request body (Converse already filters them)
Thanks for LiteLLM — the unified gateway has been hugely useful for working across Bedrock and other providers.
## Problem
The Bedrock **invoke** transform leaks LiteLLM-internal `optional_params` into the provider request body. After filtering out AWS-auth keys, it splats the remaining `inference_params` straight into the request:
```python # litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py (transform_request) inference_params = {k: v for k, v in inference_params.items() if k not in self.aws_authentication_params} ... request_data = {"prompt": prompt, **inference_params} # internal knobs leak through ```
Internal control flags (e.g. the MCP handler keys `skip_mcp_handler` / `_skip_mcp_handler`) are not valid Bedrock inference parameters, so leaking them into the body can make Bedrock reject the request.
## Why this is a gap in an existing pattern
The sibling **Converse** path already guards against exactly this:
```python # litellm/llms/bedrock/chat/converse_transformation.py additional_request_params = filter_internal_params(additional_request_params) ```
The invoke path never calls `filter_internal_params` — it relies …