Skip to content
Latchkey

actions/cache "Cache service responded with 503" in CI

A 503 from the cache service means the backend was momentarily unavailable. It is a server-side, transient condition: the cache step warns and continues without a cache rather than failing the build, and a re-run after the blip usually succeeds.

What this error means

The Restore or Save step warns "Cache service responded with 503" (Service Unavailable). The job proceeds with a cache miss, redownloading or rebuilding dependencies.

actions/cache
Warning: Failed to restore: Cache service responded with 503

Common causes

A transient cache service outage or maintenance

The Actions cache backend returns 503 during a brief incident or deploy; nothing in your workflow is wrong.

Overload during a broad GitHub-side disruption

A wider platform incident can make the cache service intermittently return 503 until it recovers.

How to fix it

Re-run once the service recovers

Check the GitHub status page; if the cache service is degraded, wait for recovery and re-run. The next run restores and saves normally.

Keep the build resilient to a missing cache

  1. Ensure a cache miss only slows the build, never breaks it (do not set fail-on-cache-miss unless required).
  2. Let the install step fetch from the registry when the cache is unavailable.
  3. Re-run after the incident clears to repopulate the cache.
.github/workflows/ci.yml
- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: npm-${{ hashFiles('**/package-lock.json') }}
    fail-on-cache-miss: false

How to prevent it

  • Design jobs so a cache miss degrades to a slower build, not a failure.
  • Avoid fail-on-cache-miss: true unless a hit is truly mandatory.
  • Re-run transient 503s after the cache service recovers.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →