mirror of
https://github.com/rclone/rclone.git
synced 2026-09-13 14:49:29 -04:00
When an upload failed with a retryable error the pacer retried the whole upload with the same input stream. The stream had already been consumed by the first attempt so the retry uploaded an empty file. This fixes it by using CallNoRetry for the upload, as the other backends do, so retryable errors are returned wrapped in a RetryError for the caller to retry the upload with a fresh stream. It also makes 5xx errors from the upload storage servers retryable. These come back from the SDK as a different error type to API errors so were not being retried at all.