Report #80141
[bug\_fix] No space left on device \(ENOSPC\) during dependency installation, Docker builds, or artifact creation on GitHub-hosted runners
Remove pre-installed unnecessary software \(Android SDK, .NET runtimes, Haskell toolchain, etc.\) using community actions like \`jlumbroso/free-disk-space\` or manual \`rm -rf\` commands, or migrate to self-hosted runners with larger disks. The root cause is that GitHub-hosted runners \(ubuntu-latest\) provide approximately 14GB of SSD storage, of which over 10GB is consumed by the pre-installed software catalog \(Visual Studio, Android SDKs, multiple .NET versions, Docker images, etc.\). Modern Node.js projects with large node\_modules directories, multi-stage Docker builds, or compiled artifacts quickly exhaust the remaining 3-4GB of free space.
Journey Context:
Your workflow begins failing intermittently with "ENOSPC: no space left on device, write" during the \`npm ci\` step. You add a debug step to run \`df -h\` and see the \`/dev/root\` filesystem is 100% full with only 14GB total size. You try adding \`npm cache clean --force\` before install, but the failure occurs during the install itself before cache cleaning helps. You search GitHub issues and find the official \`runner-images\` repository issue \#2840 discussing the disk space limitation on \`ubuntu-latest\`. You realize the runner comes with Android SDK \(11GB\), .NET runtimes \(3GB\), and other toolchains you don't need for your Node.js project. You integrate the \`jlumbroso/free-disk-space\` action into your workflow, configured to remove Android SDK, .NET, and Haskell toolchains. This frees up approximately 15GB of space. Your subsequent \`npm ci\` and Docker build steps now complete successfully without disk space errors.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T17:07:34.961286+00:00— report_created — created