duosecurity/duo_client_python

Question: What Causes 429 Too Many Requests Error?

teranpeterson opened this issue · 3 comments

Occasionally I receive a 429 error from Duo and I haven't been able to find a specific limit in the docs. What, if any, are the request limits? And does the python package have a retry method?

@capk1rk We've recently added rate limiting to API calling. I'll get back to you with some information on what the rate limits are, but can I ask what version of the client library you're using? There was a change made (commit b4a40ab, March 9, released in version 4.2.0) that automatically handles the rate limiting for the caller.

Some default rate limits for the most common uses of the API client are:

  • Fetching logs: At most once every five minutes.
  • Creating users or modifying users: At most once per minute.
  • Fetching all users, integrations, or phones in an account: Varies depending on the number of objects in the account.

Your best bet is to use version 4.2.0 or later of the client as I noted before. Per https://help.duo.com/s/article/1338?language=en_US:

If you are using a Duo-supported client library, updating to the newest version of the library available should resolve this issue as the client will back off automatically and make requests within the limit.

If you have a specific need for a higher rate limit, please contact our support organization (https://duo.com/support).

Hopefully this information answers your question. Please let us know if there's any other information about the rate limiting we can provide, and thanks for using Duo!

We are on the latest version of the client. It was working great for a while until we saw a big spike in traffic. Then it broke down a handful of times. I just wanted to double check what the specific rate limiting was so that we could stay under it. Thanks