Fix a 429 error (too many requests)
A 429 means “slow down”: the request was turned away because of how fast requests are arriving, not because of your plan or balance. Wait the number of seconds in the Retry-After header, then try again.
The three 429 codes
| Code | Cause | Fix |
|---|---|---|
rate_limited | More than 600 requests in a minute on one key (or one Syntic Code sign-in) | Wait Retry-After seconds; smooth out bursts |
model_busy | The model is handling too many requests right now | Retry after Retry-After; for non-urgent work, try another model |
capacity_busy | Syntic turned the request away before running it. Nothing was charged | Retry after Retry-After |
The error body also includes retry_after (in seconds), the same value as the Retry-After header.
Retry the right way
- Read
Retry-Afterand wait at least that long. - Add a little random delay (jitter) so many clients don’t all retry at the same moment.
- If the next try also gets a
429, wait longer each time (exponential back-off), up to a sensible cap. - Give up after a few attempts and log the request ID.
Stay under the limit
- Send requests through a queue in your code instead of all at once.
- Use one key per service so a busy service doesn’t use up another’s allowance. Note that extra keys aren’t a way around the limit for the same workload.
- Cache answers to repeated questions.
Need a higher limit?
In the Console, choose Contact Sales, pick Increase Rate Limits, and describe your expected traffic (requests per minute at peak, and which models).
Not a 429?
402is about plan windows and credit: Fix a 402 error.503errors such asservice_unavailablemean a temporary problem; retry with back-off and check status.syntic.ai.
Related
Was this page helpful?