#35544 [Bug]: RejectedRequestError message prefixes leak into completion content
## What happened?
`RejectedRequestError` is the proxy's mechanism for returning a message to the caller instead of calling the model — `proxy_server.py` catches it and builds a response:
```python except RejectedRequestError as e: _chat_response = litellm.ModelResponse() _chat_response.choices[0].message.content = e.message # <- user-facing content ... return _chat_response ```
But `e.message` has been prefixed **twice** by the time it lands there, so the caller receives the exception class names inside the completion text.
### Cause
`litellm/exceptions.py`:
```python class RejectedRequestError(BadRequestError): def __init__(self, message, model, llm_provider, request_data, litellm_debug_info=None): self.status_code = 400 self.message = "litellm.RejectedRequestError: {}".format(message) # prefix #1 ... super().__init__(message=self.message, ...) # prefix #2 in BadRequestError ```
Supplying `"366"` therefore delivers:
```json {"choices":[{"message":{"content":"litellm.BadRequestError: litellm.RejectedRequestError: 366"}}]} ```
HTTP 200, correct latency, correct routing — only the text is wro…