curl/docs/cmdline-opts/retry.md
Jay Satiro fe06127ded tool_operate: retry on HTTP response codes 522 and 524
- Treat HTTP response codes 522 and 524 as a transient error since
  Cloudflare may use them instead of 504 to signal timeout.

For example here is a 522 error message from Cloudflare:

"The initial connection between Cloudflare's network and the origin web
server timed out. As a result, the web page can not be displayed."

Prior to this change the curl tool did not retry on HTTP response codes
522 and 524 when --retry was used.

Fixes https://github.com/curl/curl/discussions/16143
Closes https://github.com/curl/curl/pull/19011
2025-10-14 11:06:24 -04:00

34 lines
1.1 KiB
Markdown

---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry
Arg: <num>
Added: 7.12.3
Help: Retry request if transient problems occur
Category: curl
Multi: single
See-also:
- retry-max-time
- retry-connrefused
- retry-delay
Example:
- --retry 7 $URL
---
# `--retry`
If a transient error is returned when curl tries to perform a transfer, it
retries this number of times before giving up. Setting the number to 0 makes
curl do no retries (which is the default). Transient error means either: a
timeout, an FTP 4xx response code or an HTTP 408, 429, 500, 502, 503, 504, 522
or 524 response code.
When curl is about to retry a transfer, it first waits one second and then for
all forthcoming retries it doubles the waiting time until it reaches 10
minutes, which then remains the set fixed delay time between the rest of the
retries. By using --retry-delay you disable this exponential backoff
algorithm. See also --retry-max-time to limit the total time allowed for
retries.
curl complies with the Retry-After: response header if one was present to know
when to issue the next retry (added in 7.66.0).