From f4cd80a5352b670a51cfab172456267c9265f2a2 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Sat, 5 Sep 2026 11:49:36 +0100 Subject: [PATCH] pixeldrain: fix corrupted uploads after a retried upload error When an upload failed with a retryable error the pacer retried the whole PUT 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. --- backend/pixeldrain/api_client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/pixeldrain/api_client.go b/backend/pixeldrain/api_client.go index 3c0b31a37..0adf27ed5 100644 --- a/backend/pixeldrain/api_client.go +++ b/backend/pixeldrain/api_client.go @@ -213,7 +213,7 @@ func (f *Fs) put( // exist yet params.Set("make_parents", "true") - return node, f.pacer.Call(func() (bool, error) { + return node, f.pacer.CallNoRetry(func() (bool, error) { resp, err := f.srv.CallJSON( ctx, &rest.Opts{