We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

Sam80's avatar
Sam80
Helpful | Level 5
2 years ago

429 rate limit errors without "error" tag

According to the API docs, rate limiting errors (429) will have the following format:

 

The Content-Type of the response can be JSON or plaintext. If it is JSON, it will be type RateLimitError.

 

I've recently seen an increasing number of reports from users of my app, using the Dropbox Python SDK, where 429 errors with content-type 'application/json' don't conform to the expected JSON structure. In particular, they don't contain an "error" tag, leading to exceptions when the SDK tries to deserialise them as RateLimitError in https://github.com/dropbox/dropbox-sdk-python/blob/487793dff3c5a8a3a76010799dc4803cabdb70f3/dropbox/dropbox_client.py#L644-L649:

 

 

            err = None
            if res.headers.get('content-type') == 'application/json':
                err = stone_serializers.json_compat_obj_decode(
>                   RateLimitError_validator, res.json()['error'])
E               KeyError: 'error'

 

 

Has anything changed in the expected body of error responses?

 

    • Greg-DB's avatar
      Greg-DB
      Icon for Dropbox Staff rankDropbox Staff

      The team has pushed out a change that should fix this. Please let us know if you're still seeing any instances of this now. Thanks!