Skip to content
LatchkeyLatchkey home

Self-Healing CI: Auto-Retrying an S3 Artifact 503

A 503 SlowDown from S3 during an artifact transfer is a temporary throttle, not a build error -- the same request succeeds after a short backoff.

The problem

An artifact upload or download fails because S3 returned a 503 (often SlowDown) under a burst of requests. The build and the object are fine; the request was briefly throttled. A human re-runs and the transfer completes unchanged.

Typical symptom
An error occurred (503) when calling the PutObject operation (reached max retries: 4): SlowDown
Please reduce your request rate.

Why it happens

Object storage throttles bursts of requests to a prefix with a 503/SlowDown, so a job that transfers many objects quickly -- or shares a prefix with other automation -- can briefly exceed the rate even though every request is valid.

The throttle clears as the request rate falls, so a 503 now succeeds once the call is retried with backoff, with no change to the artifact.

The manual fix

Manual mitigations for an S3 503:

  1. Re-run the job to retry the transfer.
  2. Add exponential backoff with jitter and rely on the SDK’s adaptive retry mode.
  3. Spread objects across prefixes and reduce concurrency to stay under the throttle.

How this gets automated

An S3 503/SlowDown carries an unmistakable transient signature and a safe default action: back off and retry. A self-healing CI pipeline recognizes the throttle, waits with backoff, retries the transfer, and only escalates if the operation keeps failing after the rate should have eased, distinguishing a throttle from a genuine storage or permissions error.

Frequently asked questions

What causes Self-Healing CI: Auto-Retrying an S3 artifact 503?
An artifact upload or download fails because S3 returned a 503 (often SlowDown) under a burst of requests. The build and the object are fine; the request was briefly throttled. A human re-runs and the transfer completes unchanged.
How do I fix Self-Healing CI: Auto-Retrying an S3 artifact 503 manually?
[object Object]
Can Self-Healing CI: Auto-Retrying an S3 artifact 503 be fixed automatically?
An S3 503/SlowDown carries an unmistakable transient signature and a safe default action: back off and retry. A self-healing CI pipeline recognizes the throttle, waits with backoff, retries the transfer, and only escalates if the operation keeps failing after the rate should have eased, distinguishing a throttle from a genuine storage or

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card