#26879 [Bug] Multiple system messages sent to non-OpenAI providers when using Responses API with developer role messages
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
## Bug Description
When using LiteLLM Proxy's `/responses` endpoint with a client that sends both an `instructions` field and `developer` role messages (e.g., Codex CLI), LiteLLM generates multiple `system` messages in the final chat completion request. Non-OpenAI backends (e.g., Qwen, Llama) that only accept a single system message at the beginning will reject the request with a 400 error: `System message must be at the beginning.`
## Root Cause
Two separate code paths each produce a `system` message, and they are never merged:
1. `LiteLLMCompletionResponsesConfig.transform_instructions_to_system_message()` in `transformation.py` converts the `instructions` field into `messages[0]` as a `system` role. 2. `map_developer_role_to_system_role()` in `base_utils.py` iterates over all messages and converts each `developer` role one-by-one into additional `system` messages.
The result is a message list like: ``` system (from instructions) system (from developer message 1) system (from developer message 2) ... user user ```
This is invalid for an…