Summary
When an MCP script tool is unavailable or fails at runtime (e.g., Docker no space left on device), the agent reports output_types: missing_tool but the workflow completes successfully. This makes it impossible to detect when a workflow silently failed to accomplish its task.
Observed Behavior
- Agent calls an MCP script tool (
cargo) that uses Docker internally
- Docker fails with
no space left on device (runner disk too small for image)
- Agent retries the tool a few times, all fail
- Agent reports
missing_tool in agent_output.json and exits cleanly
- All jobs (activation, agent, safe_outputs, conclusion) pass ✅
- Workflow run appears green despite accomplishing nothing
Example run: https://github.com/github/blackbird/actions/runs/23658300309
The agent_output.json shows:
{
"items": [
{
"type": "missing_tool",
"tool": "mcpscripts-cargo (Docker build container at host.docker.internal:3000)",
"reason": "The cargo build container service is unreachable — all calls to mcpscripts-cargo time out..."
}
]
}
Yet all 4 jobs passed.
Expected Behavior
The workflow should either:
- Fail by default when
missing_tool is the only output type and no changes were made — the agent could not do its job
- Provide a frontmatter option (e.g.,
required-tools: [cargo]) to explicitly fail when specific tools are unavailable
- At minimum, surface
missing_tool as a warning annotation on the workflow run summary so it is visible without downloading artifacts
Context
- gh-aw version: v0.58.1
- Tool type: MCP script (
run: shell type) that starts a Docker build container
- Root cause:
ubuntu-latest runner had 14GB disk, insufficient for the Docker image
- The failure was completely invisible in the workflow status — only discoverable by downloading the
agent artifact and reading agent_output.json
Related
Summary
When an MCP script tool is unavailable or fails at runtime (e.g., Docker
no space left on device), the agent reportsoutput_types: missing_toolbut the workflow completes successfully. This makes it impossible to detect when a workflow silently failed to accomplish its task.Observed Behavior
cargo) that uses Docker internallyno space left on device(runner disk too small for image)missing_toolinagent_output.jsonand exits cleanlyExample run: https://github.com/github/blackbird/actions/runs/23658300309
The
agent_output.jsonshows:{ "items": [ { "type": "missing_tool", "tool": "mcpscripts-cargo (Docker build container at host.docker.internal:3000)", "reason": "The cargo build container service is unreachable — all calls to mcpscripts-cargo time out..." } ] }Yet all 4 jobs passed.
Expected Behavior
The workflow should either:
missing_toolis the only output type and no changes were made — the agent could not do its jobrequired-tools: [cargo]) to explicitly fail when specific tools are unavailablemissing_toolas a warning annotation on the workflow run summary so it is visible without downloading artifactsContext
run:shell type) that starts a Docker build containerubuntu-latestrunner had 14GB disk, insufficient for the Docker imageagentartifact and readingagent_output.jsonRelated