Is GitHub Container Registry Down? How to Check and Keep Your CI Green
Your CI just went red and you suspect GitHub Container Registry. Here is how to confirm an outage in seconds - and how to stop a registry blip from failing your builds in the first place.
When GitHub Container Registry has a hiccup, every pipeline that pulls from it can fail at once. The good news: these failures are transient, so the fix is to confirm the outage and make your CI resilient to it.
How to check if GitHub Container Registry is down
- Check the official status page: githubstatus.com
- Look for an active incident affecting GitHub Packages / ghcr.io.
- Cross-check community reports (Downdetector, the project's status on social/X).
- Confirm it is org-wide, not just your job: if every repo pulling from GitHub Container Registry fails at once, it is an outage, not your config.
What it looks like in CI
An outage usually surfaces as a transient network or 5xx error while fetching from GitHub Container Registry:
Typical CI log
Error response from daemon: Get "https://ghcr.io/v2/...": unexpected status: 503Outage vs your own bug
- Outage: many repos fail at once, errors are network/5xx/timeouts, no recent change on your side.
- Your bug: one repo, a specific error, started right after a change you made.
How to keep CI green during a blip
- Add retry-with-backoff around the step that hits GitHub Container Registry - most blips pass within a minute.
- Mirror critical images to a second registry and authenticate to avoid throttling.
- Cache dependencies so a brief outage does not block jobs that could install from cache.
- Avoid mass "re-run all" during an incident - it piles up when the service recovers.
Key takeaways
- Check githubstatus.com first; org-wide failures = outage, not your config.
- GitHub Container Registry blips are transient network/5xx errors.
- Retries, caching, and a mirror keep CI green through a hiccup.
Frequently asked questions
Why does a GitHub Container Registry outage fail my whole pipeline?
Most CI steps fetch from GitHub Container Registry with a single attempt and no retry, so one failed request fails the job. Adding retries or self-healing runners turns a momentary blip into a non-event.
Related guides
Self-Healing CI: Auto-Retrying Transient Registry and 5xx FailuresRegistry timeouts, 429s, and 5xx errors are transient by definition. See why they happen and how self-healing…
Self-Healing CI: Handling Network Timeouts and Flaky ConnectionsNetwork timeouts during dependency downloads and API calls are transient. Learn the manual mitigations and ho…
How to Retry a Failed Step or Job in GitHub ActionsHow to retry failed GitHub Actions steps and jobs - manual re-runs, retry actions with backoff, and automatic…
GitHub Actions Cost Calculator - Estimate & Cut Your CI BillFree GitHub Actions cost calculator: enter your monthly CI minutes and runner size to see your current bill a…