#35332 [Bug]: Bedrock guardrail silently drops image input — only text is sent to ApplyGuardrail
### What happened?
The Bedrock guardrail integration builds its `ApplyGuardrail` payload from **text content items only**. When a request carries an image, the image is forwarded to the model but is **silently dropped from the guardrail payload** — so the guardrail never inspects it.
For an image-first application this means the guardrail is effectively not applied to the primary content at all, while the proxy reports the guardrail as having run.
This is not an AWS limitation: `ApplyGuardrail` accepts image content, and a Bedrock guardrail can have `[TEXT, IMAGE]` modalities enabled. Passing the same image to `ApplyGuardrail` directly (boto3) returns `GUARDRAIL_INTERVENED`. LiteLLM just never includes it.
**Source** — `litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.py`, the message→payload extractor:
```python elif isinstance(content, list): for item in content: if isinstance(item, dict) and "text" in item: # text blocks only blocks.append(...) elif isinstance(item, str): blocks.append(...) # {"type": "image_url", "image_url": {...}} has no "text" key -> skipped ```
An OpenAI-format image part has no `text` k…