Parent investigation: #26874
Problem
Two workflows failed on 2026-04-17 with identical errors inside the firewall agent container:
/bin/bash: line 1: /home/runner/work/_tool/node/24.15.0/x64/bin/node: No such file or directory
The container starts successfully (all health checks pass), but the copilot driver script fails to launch because GH_AW_NODE_BIN resolves to a toolcache path that doesn't exist inside the container.
Affected Workflows and Runs
| Workflow |
Run ID |
Engine |
Time (UTC) |
| Daily Issues Report Generator |
§24560753963 |
copilot |
10:34Z |
| Daily News |
§24557049556 |
copilot |
09:03Z |
Root Cause Analysis
The entrypoint command that fails:
\$\{GH_AW_NODE_BIN:-node} \$\{RUNNER_TEMP}/gh-aw/actions/copilot_driver.cjs /usr/local/bin/copilot ...
GH_AW_NODE_BIN is set (overriding the :-node fallback) to /home/runner/work/_tool/node/24.15.0/x64/bin/node — a path inside the runner's toolcache. This path either:
- Was not mounted into the container, or
- Node.js 24.15.0 was not provisioned in the toolcache on these runner instances
The setup-node step (which installs Node.js via toolcache) runs on the host runner, but GH_AW_NODE_BIN is passed into the agent container via --env-all. If the toolcache path doesn't exist inside the container's filesystem view, the hardcoded path fails.
This may be a regression introduced when the AWF was updated from v0.25.20 → v0.25.23 (see #26822), which changed how the agent container mounts are configured.
Proposed Remediation
- Check whether the runner toolcache path is mounted into the agent container by
awf. If /home/runner/work/_tool is not mounted, the hardcoded path will always fail.
- Audit
GH_AW_NODE_BIN resolution: prefer dynamic resolution (which node, $(command -v node)) over hardcoded toolcache paths, with the hardcoded path as a fallback rather than the primary value.
- Add a pre-flight step that validates
GH_AW_NODE_BIN exists before launching the container, falling back to system node.
Success Criteria
Both Daily Issues Report Generator and Daily News run without No such file or directory errors on their next scheduled executions.
Generated by [aw] Failure Investigator (6h) · ● 1.2M · ◷
Parent investigation: #26874
Problem
Two workflows failed on 2026-04-17 with identical errors inside the firewall agent container:
The container starts successfully (all health checks pass), but the copilot driver script fails to launch because
GH_AW_NODE_BINresolves to a toolcache path that doesn't exist inside the container.Affected Workflows and Runs
Root Cause Analysis
The entrypoint command that fails:
GH_AW_NODE_BINis set (overriding the:-nodefallback) to/home/runner/work/_tool/node/24.15.0/x64/bin/node— a path inside the runner's toolcache. This path either:The
setup-nodestep (which installs Node.js via toolcache) runs on the host runner, butGH_AW_NODE_BINis passed into the agent container via--env-all. If the toolcache path doesn't exist inside the container's filesystem view, the hardcoded path fails.This may be a regression introduced when the AWF was updated from v0.25.20 → v0.25.23 (see #26822), which changed how the agent container mounts are configured.
Proposed Remediation
awf. If/home/runner/work/_toolis not mounted, the hardcoded path will always fail.GH_AW_NODE_BINresolution: prefer dynamic resolution (which node,$(command -v node)) over hardcoded toolcache paths, with the hardcoded path as a fallback rather than the primary value.GH_AW_NODE_BINexists before launching the container, falling back to systemnode.Success Criteria
Both Daily Issues Report Generator and Daily News run without
No such file or directoryerrors on their next scheduled executions.