Skip to content

Instantly share code, notes, and snippets.

@schickling
Created February 12, 2026 10:14
Show Gist options
  • Select an option

  • Save schickling/2c4e024632f5191f4456eac1241c6499 to your computer and use it in GitHub Desktop.

Select an option

Save schickling/2c4e024632f5191f4456eac1241c6499 to your computer and use it in GitHub Desktop.
Flaky: Namespace macOS arm64 Nix store invalid path

Flaky CI failure on Namespace macOS arm64 runners: invalid Nix store paths

Summary

We are seeing an intermittent CI failure on Namespace-managed GitHub Actions runners (macOS arm64) where Nix evaluation fails because the runner's /nix/store appears internally inconsistent (store DB references paths that don't exist).

This is not a flaky unit/integration test: the failure happens before our actual tests run.

Symptoms

  • Job: test (namespace-profile-macos-arm64)
  • Fails during Nix/devenv evaluation (before vitest starts)
  • Error signature (key line):
error: path '/nix/store/...-make-symlinks-relative.sh' is not valid

The error is emitted while evaluating bootstrap-stage0-stdenv-darwin (Darwin stdenv bootstrap), which suggests missing store paths.

We also see downstream/secondary errors like:

  • Failed to convert config.cachix to JSON
  • Evaluation error: Failed to get attribute 'package' while evaluating cachix.package

Those look like consequences of the earlier invalid store path.

Evidence (public)

Example failing runs in a public repo:

Internal tracking issue (what we collect when it happens again):

Upstream issue filed for Namespace:

Runner details

In the failing run logs (linked above), GitHub Actions prints Namespace runner details:

  • OS: macOS
  • Architecture: arm64
  • A "User Bundled Cache" is enabled

We suspect this may involve persisted runner state / bundled cache restoring a broken Nix store state.

What would help

Questions for Namespace maintainers / runners team:

  1. Are there known issues on macOS Namespace runners where /nix/store can become inconsistent (missing paths)?
  2. Is there a supported way to force a clean Nix store (or disable store persistence) for a runner profile?
  3. If the bundled cache can become corrupted, is there a supported mechanism to invalidate/reset it automatically?

Notes

  • This is flaky and we do not have a reliable reproduction.
  • We are improving CI logging so that future failures include more actionable Nix store verification output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment