Skip to content

[macOS 15] NX codegen process hangs indefinitely after March 17 image update (20260317) on macos-15-xlarge #13837

@jayeshjd55555

Description

@jayeshjd55555

Description

Description

After the March 17, 2026 runner image update (version 20260317.0218.1), NX monorepo commands hang indefinitely on macos-15-xlarge runners.

Specifically, running yarn nx run-many --target=codegen --all — which executes code generation tasks across multiple projects in an NX monorepo — produces zero output, no error messages, and no progress. The process sits completely silent until the GitHub Actions step timeout cancels it after 15-25 minutes, leaving behind orphan Node.js processes that have to be forcefully terminated:

Terminate orphan process: pid (34711) (node)
Terminate orphan process: pid (34700) (node)

The NX command never reaches its initialization phase — it does not print the project list, does not start the task runner, and does not emit any diagnostic output. It appears to hang during the NX daemon startup or project graph computation phase before any task execution begins.

The exact same workflow, same code, and same dependencies complete successfully in ~20 seconds on macos-15-large runners, which are still running the previous March 3 image (20260303.0227.1).

We have temporarily switched from macos-15-xlarge to macos-15-large as a workaround, but this will break once large runners also receive the March 17 image update.

Environment Comparison

macos-15-large (Working) macos-15-xlarge (Broken)
Image Version 20260303.0227.1 20260317.0218.1
macOS 15.7.4 (24G517) 15.7.5 (24G617)
  • Runner version: 2.332.0
  • NX version: 21.6.5
  • Node.js (installed via actions/setup-node): 22.20.0

What We Tried

  • Setting NX_DAEMON=false to disable the NX background daemon — issue persists
  • Setting NX_NO_CLOUD=true to disable remote cache connections — issue persists
  • Clearing NX local cache (rm -rf .nx/cache .nx/d) before running — issue persists
  • Running with NX_VERBOSE_LOGGING=trueno additional output produced (process hangs before any logging occurs)

Additional Notes

  • The issue is 100% reproducible: every build on macos-15-xlarge (March 17 image) hangs at the NX step, while every build on macos-15-large (March 3 image) succeeds.
  • This is blocking our CI/CD pipeline for mobile builds.

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Ubuntu Slim
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • macOS 26
  • macOS 26 Arm64
  • Windows Server 2022
  • Windows Server 2025
  • Windows Server 2025 with Visual Studio 2026

Image version and build link

Image Version: 20260317.0218.1

Is it regression?

No

Expected behavior

Expected Behavior

On macos-15-xlarge (image 20260317.0218.1), the codegen step should complete in ~20 seconds, same as it did before the March 17 image update:
$ yarn nx run-many --target=codegen --all
NX Running target codegen for 7 projects:
project-a
project-b
project-c
project-d
project-e
project-f
project-g
NX Successfully ran target codegen for 7 projects
Done in 19.50s.

Actual behavior

Actual Behavior

On macos-15-xlarge (image 20260317.0218.1), the codegen step hangs with zero output for hours until the step timeout cancels it:

$ yarn nx run-many --target=codegen --all
<--- no output at all, completely silent
<--- hangs for 15-25 minutes
##[error]The operation was canceled.

Post-job cleanup reveals orphan Node.js processes that were stuck:

Cleaning up orphan processes
Terminate orphan process: pid (34711) (node)
Terminate orphan process: pid (34700) (node)

Repro steps

Repro Steps

  1. Create a GitHub Actions workflow that runs on macos-15-xlarge (which currently has image 20260317.0218.1)
  2. Use actions/checkout@v4 to checkout a monorepo using NX (version 21.6.5)
  3. Install Node.js 22.x via actions/setup-node@v3
  4. Install dependencies via yarn install
  5. Run yarn nx run-many --target=codegen --all
  6. The NX command will hang indefinitely with zero output — no project list, no errors, no progress
  7. After 6 hours the step will be cancelled by the workflow timeout
  8. Post-job cleanup will show orphan Node.js processes being terminated

To verify it's the image: Run the exact same workflow on macos-15-large (still on image 20260303.0227.1) — codegen completes successfully in ~20 seconds.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions