diff --git a/pkg/file/redundancy/getter/strategies.go b/pkg/file/redundancy/getter/strategies.go index 8bf944e8ae7..ca4ee0bb5fd 100644 --- a/pkg/file/redundancy/getter/strategies.go +++ b/pkg/file/redundancy/getter/strategies.go @@ -93,7 +93,12 @@ func (g *decoder) prefetch(ctx context.Context, strategy int, strict bool, strat return g.recover(ctx) // context to cancel when shardCnt chunks are retrieved } var err error - for s := strategy; s == strategy || (err != nil && !strict && s < strategyCnt); s++ { + for s := strategy; s < strategyCnt; s++ { + err = run(s) + if err != nil || strict { + return + } + } err = run(s) } }