#26070 [Feature]: Expose retry_after on RateLimitError
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### The Feature
### Solution Add a `retry_after: int | None` attribute to `litellm.RateLimitError`, accessible directly or via `MidStreamFallbackError.original_exception`, so that callers can access provider-specific retry timing without parsing exception message strings.
---
### Proposed API
**Direct access via `RateLimitError`:** ```python except litellm.RateLimitError as e: print(f"please retry after {e.retry_after} seconds") # please retry after 37 seconds ```
**Access via `MidStreamFallbackError`:** ```python except litellm.MidStreamFallbackError as e: if isinstance(e.original_exception, RateLimitError): print(f"please retry after {e.original_exception.retry_after} seconds") # please retry after 37 seconds ```
---
### Possible Implementation
`retry_after` can be extracted from the exception message via regex inside the constructor of `RateLimitError`:
```python class RateLimitError(openai.RateLimitError): def __init__(self, message, llm_provider, model, ...): ... self.retry_after = self._parse_retry_after(message, …