Skip to content

[awf] Runner Setup: node not found on aw-gpu-runner-T4 breaks copilot-engine workflows #2222

@lpcox

Description

@lpcox

Problem

Three daily agentic workflows (daily-news.md, daily-fact.md, daily-issues-report.md) are failing 100% of the time on the aw-gpu-runner-T4 runner with:

/bin/bash: line 1: node: command not found

All three workflows use engine: copilot, which requires Node.js to invoke the Copilot CLI binary. The runtimes: node: version: "24" frontmatter is not provisioning Node.js correctly on this runner type.

Context

Root Cause

The aw-gpu-runner-T4 runner image does not include Node.js in PATH. The runtimes: node: frontmatter directive either:

  1. Is not processed before the copilot engine step executes, or
  2. Is not supported / not functioning on GPU runner images

The relevant runner setup logic lives in actions/setup/sh/install_copilot_cli.sh and the copilot engine execution path in pkg/workflow/copilot_engine_execution.go (in gh-aw). On the firewall side, copilot-setup-steps.yml and the agent container entrypoint (containers/agent/entrypoint.sh) must ensure Node.js is available in PATH before the user command runs.

Proposed Solution

  1. Verify GPU requirement: Confirm whether daily-news.md, daily-fact.md, and daily-issues-report.md actually use T4 GPU acceleration. If not, change runs-on: aw-gpu-runner-T4ubuntu-latest in workflow frontmatter.

  2. Fix runner image: If GPU runners are intentionally used, ensure the aw-gpu-runner-T4 image includes Node.js 20+ in PATH — matching the ubuntu-latest baseline. Update the runner image build or provisioning scripts.

  3. Add pre-flight check: In copilot-setup-steps.yml (.github/copilot-setup-steps.yml), add a step that installs/activates Node.js via actions/setup-node as a fallback guard before any copilot engine invocation.

  4. Fix runtimes: frontmatter handling: Investigate why runtimes: node: version: "24" is not effective on GPU runner types and fix the runtime provisioning logic so it works uniformly across runner variants.

Generated by Firewall Issue Dispatcher · ● 657.8K ·

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions