No space left on device (runner) CI/CD Origin: Build & delivery Last updated 25 Oct 2026

GitHub Actions: System.IO.IOException: No space left on device — the runner's disk is full

The job filled the runner's disk (about 14 GB free on standard Linux runners): large Docker images, caches, build outputs or test artifacts.

Exact message you may see System.IO.IOException: No space left on deviceNo space left on device runnerENOSPC: no space left on device, writeYou are running out of disk space. The runner will stop working when the machine runs out of disk spaceError: ENOSPC
Seen on: GitHub Actions Docker Linux

Meaning

Hosted runners have limited free disk. Docker builds, Android/Gradle, Rust target/ folders and big node_modules can fill it. Free space early by removing preinstalled tools you do not use, prune Docker, avoid huge artifacts, and clean build output between steps.

Common causes

  • Large Docker images and layers
  • Rust target/, Gradle caches or node_modules growing large
  • Many or huge artifacts/logs written to the workspace
  • Preinstalled SDKs consuming space you do not need
  • Matrix legs sharing a self-hosted disk

⚡ Quick fix

  1. Delete unused preinstalled tools at the start (dotnet, android, haskell)
  2. docker system prune -af between big steps
  3. Upload less data; compress or exclude build intermediates

Detailed fix by platform

GitHub Actions

  1. Check usage: run: df -h / and du -sh * | sort -h | tail
  2. Free ~25 GB: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc

Docker

  1. docker system df then docker system prune -af --volumes

Code examples

Free space first

yaml
- name: Free disk space
  run: |
    df -h /
    sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
    docker system prune -af
    df -h /

How to diagnose

  1. Usage — df -h / at the point of failure?
  2. Biggest — du -sh of folders?
  3. Cause — Docker, caches or artifacts?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):

API rate limit exceeded — GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit (CI/CD)API rate limit exceed…Credentials could not be loaded — GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers (CI/CD)Credentials could not…Process completed with exit code 137 — GitHub Actions: Error: Process completed with exit code 137 (Killed — out of memory) (CI/CD)Process completed wit…runner registration token invalid — GitLab CI: ERROR: Registering runner... failed runner=abc status=couldn't execute POST against https://gitlab.com/api/v4/runners: 403 Forbidden (CI/CD)runner registration t…Sending build context — Docker build slow: "Sending build context to Docker daemon 2.5GB" / transferring context takes forever (Docker)Sending build contextThe runner has received a shutdown signal — GitHub Actions: The runner has received a shutdown signal. This can happen when the runner service is stopped, or a manually started runner is canceled (CI/CD)The runner has receiv…This job is stuck because you don't have any active runners — GitLab CI: This job is stuck because you don't have any active runners online or available with any of these tags assigned to them (CI/CD)This job is stuck bec…Unable to download artifact — GitHub Actions: Error: Unable to download artifact(s): Artifact not found for name: build (CI/CD)Unable to download ar…No space …

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.