# ModelRateLimitError
`langchain_core.exceptions.ModelRateLimitError` is retryable. The model already retries 429s with exponential backoff (default 6 attempts). Seeing the error surface means the limit is real and sustained, not a blip.
## Fixes in order of preference
1. Slow down at the source with the built-in limiter:
```python
from langchain.rate_limiters import InMemoryRateLimiter
from langchain.chat_models import init_chat_model
rate_limiter = InMemoryRateLimiter(
requests_per_second=0.5,
check_every_n_seconds=0.1,
max_bucket_size=10,
)
model = init_chat_model("gpt-5.5", model_provider="openai", rate_limiter=rate_limiter)
```
The limiter is thread safe and can be shared across threads in one process. Note it limits request count per unit time, not request size.
2. Reduce concurrency in your batching or agent fan-out.
3. Cache repeated identical requests so you stop paying for the same call twice.
4. Distribute across providers with ModelFallbackMiddleware if your architecture allows it.
5. Ask the provider for a limit increase.
## Rule
In JS the same condition is the MODEL_RATE_LIMIT error code. Do not "fix" a rate limit by raising max_retries alone; retries without slowing down just move the failure later.