Merged
Size
S
Change Breakdown
CI/CD75%
Bug Fix25%
#28442ci: Replace docker/login-action with retry-wrapped docker login for DockerHub

DockerHub login wrapped in retry logic

DockerHub authentication in CI pipelines now retries up to three times on transient failures, replacing a third-party action with a bash command that handles rate limits more gracefully.

Release pipelines running DockerHub authentication were occasionally failing mid-process due to rate limits or temporary network issues. Rather than relying on a third-party GitHub Action that offered no retry capability, the login step now uses a direct bash command wrapped in the existing retry logic. This approach mirrors how GHCR authentication already handles transient failures in the same workflow. The login attempts three times with a ten-second delay between each attempt before giving up — enough to ride out most hiccups without slowing down successful runs.

View Original GitHub Description

Summary

Replaces the third-party docker/login-action composite action step for DockerHub login with a direct docker login bash command, consistent with how the GHCR login step is already implemented in this action.

The new step wraps the login in retry.mjs (3 attempts, 10s delay) to handle transient DockerHub rate limits or network hiccups — the same retry pattern used for GHCR login.

Verification:

  • docker/login-action without a registry: input defaults to docker.io — identical to docker login with no registry argument
  • Both write credentials to ~/.docker/config.json; the action does not use credential helpers or any storage mechanism beyond the standard Docker CLI
  • Composite action steps share the runner environment with the calling workflow, so login sessions are equally visible to downstream steps

Related Linear tickets, Github issues, and Community forum posts

https://linear.app/n8n/issue/CAT-2808

Hopefully fixes flakiness present in e.g. the Release process https://github.com/n8n-io/n8n/actions/runs/24347179771/job/71091395195#step:6:59

Review / Merge checklist

  • I have seen this code, I have run this code, and I take responsibility for this code.
  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with Backport to Beta, Backport to Stable, or Backport to v1 (if the PR is an urgent fix that needs to be backported)

🤖 PR Summary generated by AI

© 2026 · via Gitpulse