#30705 [Bug]: Anthropic /v1/messages should normalize or reject messages[] entries with role=system
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
## Summary
Anthropic `/v1/messages` requests sent through LiteLLM can fail with a 400 error when the request body contains a `system` role inside `messages[]`.
Anthropic Messages API expects system prompts to be passed through the top-level `system` parameter, not as an item in `messages[]`.
## Error
```text {"message":"messages: Unexpected role \"system\". The Messages API accepts a top-level `system` parameter, not \"system\" as an input message role."} ```
## Environment
- LiteLLM version: `1.88.1` - Endpoint: `/v1/messages` / Anthropic Messages API compatible endpoint - Provider path: LiteLLM Proxy -> Bedrock Anthropic - Model: Claude Sonnet 4.6 - Request type: `anthropic_messages`
## Observed Behavior
When a client sends a request containing `role: "system"` inside `messages[]`, LiteLLM forwards the request to the Anthropic-compatible provider without normalizing the payload.
The upstream provider rejects the request immediately with HTTP 400.
Example invalid request shape:
```json { "model": "Claude Sonnet 4.6", "messages":…