When I make requests to my Amazon S3 bucket, I get a 503 SlowDown response. How can I avoid this request throttling from Amazon S3?

Last updated: 2022-09-15

I'm getting a 503 SlowDown response when I send requests to my Amazon Simple Storage Service (Amazon S3) bucket. How can I avoid request throttling from Amazon S3?

Short description

The 503 Slowdown error looks similar to the following:
"AmazonS3Exception: Please reduce your request rate. (Service: Amazon S3;
            Status Code: 503; Error Code: SlowDown)"

You can send 3,500 PUT/COPY/POST/DELETE and 5,500 GET/HEAD requests per second per partitioned prefix in an Amazon S3 bucket. When you have a sustained, increased request rate to your bucket, S3 can return 503 SlowDown errors while scaling to support the request rate. This scaling process is called partitioning.

Resolution

When you receive a 503 SlowDown error, retry the request that caused it. The AWS CLI and SDKs have built-in retry logic and automatically retry 503 SlowDown errors. For more information, see AWS CLI retries or Retry behavior from the AWS SDKs and Tools reference guide. You can also control retry behavior with an application or script from the AWS SDKs. For a Python example, see Defining a retry configuration in a Config object for your Boto3 client in the Boto3 documentation.

503 SlowDown errors can also be caused by two or more simultaneous PUT calls on the same object key due to Amazon S3 Strong Consistency. When a PUT request is made in Amazon S3, Amazon S3 automatically stores your object redundantly across multiple Availability Zones. This process may take up to several hundred milliseconds. To avoid seeing 503 SlowDown errors, allow time between PUT requests to the same object key.