429 Too many requests response status code in the following cases:
- A user sends too many requests in a given amount of time (rate limiting).
- A user sends too many concurrent requests (concurrency limiting).
- A user issues conflicting requests concurrently (conflicting requests). Each of these cases requires different solving measures. The response body explains the cause of a particular 429 response.
Rate limiting
Rate limiting happens when a user sends requests too fast. Refer to a particular resource’s documentation for more details as different endpoints can have different rate limits. The limit scopes are the following:- By user (identity)
- By project
- Reduce the number of parallel workers sending these requests.
- Reduce “weight” of individual requests (for endpoints that have a “weighted” rate limit).
- Introduce delays between requests.
Concurrency limiting
Number of concurrent requests that a particular endpoint can process is limited. Refer to a particular resource’s documentation for more details as different endpoints can have different concurrency limits. The limit scopes are the following:- By user (identity)
- By project
- Reduce the number of parallel workers sending these requests.
Conflicting requests
Requests are considered conflicting when they’re concurrently trying to modify the same resource. For example, if 2 concurrent requests update the same asset, they’re considered conflicting, and one of them may get throttled. To avoid conflicting requests:- Instead of “change log”-style updates, where each modification made in the source system is replicated to CDF, replicate only the latest state.
- Reduce the number of parallel workers sending these requests.