1---
2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
3SPDX-License-Identifier: curl
4Long: retry-all-errors
5Help: Retry all errors (with --retry)
6Added: 7.71.0
7Category: curl
8Multi: boolean
9See-also:
10  - retry
11Example:
12  - --retry 5 --retry-all-errors $URL
13---
14
15# `--retry-all-errors`
16
17Retry on any error. This option is used together with --retry.
18
19This option is the "sledgehammer" of retrying. Do not use this option by
20default (for example in your **curlrc**), there may be unintended consequences
21such as sending or receiving duplicate data. Do not use with redirected input
22or output. You might be better off handling your unique problems in a shell
23script. Please read the example below.
24
25**WARNING**: For server compatibility curl attempts to retry failed flaky
26transfers as close as possible to how they were started, but this is not
27possible with redirected input or output. For example, before retrying it
28removes output data from a failed partial transfer that was written to an
29output file. However this is not true of data redirected to a | pipe or \>
30file, which are not reset. We strongly suggest you do not parse or record
31output via redirect in combination with this option, since you may receive
32duplicate data.
33
34By default curl does not return error for transfers with an HTTP response code
35that indicates an HTTP error, if the transfer was successful. For example, if
36a server replies 404 Not Found and the reply is fully received then that is
37not an error. When --retry is used then curl retries on some HTTP response
38codes that indicate transient HTTP errors, but that does not include most 4xx
39response codes such as 404. If you want to retry on all response codes that
40indicate HTTP errors (4xx and 5xx) then combine with --fail.
41