diff --git a/internal/archiver/archiver.go b/internal/archiver/archiver.go index 5573f1722..2e4af5cd8 100644 --- a/internal/archiver/archiver.go +++ b/internal/archiver/archiver.go @@ -803,7 +803,8 @@ func (arch *Archiver) Snapshot(ctx context.Context, targets []string, opts Snaps t.Kill(nil) werr := t.Wait() debug.Log("err is %v, werr is %v", err, werr) - if err == nil || errors.Cause(err) == context.Canceled { + // Use werr when it might contain a more specific error than "context canceled" + if err == nil || (errors.Cause(err) == context.Canceled && werr != nil) { err = werr }