Description
In pkg/backend/pull.go:116-129 and push.go:92-99, layer processing is wrapped in retry.Do(...) with default config (6 attempts, 5s initial delay, exponential backoff up to 60s) from retry.go:25-29.
The retry is unconditional — it retries ALL errors including 401 Unauthorized and 403 Forbidden. Auth errors should fail immediately since retrying with the same credentials will never succeed and just wastes ~30s+ of user time.
Expected behavior
Auth errors (HTTP 401, 403) should be detected and excluded from retry, failing immediately with a clear authentication error message.
Current behavior
Auth errors are retried 6 times with exponential backoff, taking 30+ seconds before ultimately failing with the same auth error.
Severity
Minor — usability issue, wastes user time but does not corrupt data.
Description
In
pkg/backend/pull.go:116-129andpush.go:92-99, layer processing is wrapped inretry.Do(...)with default config (6 attempts, 5s initial delay, exponential backoff up to 60s) fromretry.go:25-29.The retry is unconditional — it retries ALL errors including 401 Unauthorized and 403 Forbidden. Auth errors should fail immediately since retrying with the same credentials will never succeed and just wastes ~30s+ of user time.
Expected behavior
Auth errors (HTTP 401, 403) should be detected and excluded from retry, failing immediately with a clear authentication error message.
Current behavior
Auth errors are retried 6 times with exponential backoff, taking 30+ seconds before ultimately failing with the same auth error.
Severity
Minor — usability issue, wastes user time but does not corrupt data.