GitHub Agentic Workflows

Error Reference

This reference documents common error messages, organized by when they occur during the workflow lifecycle.

[!TIP] When you mistype a frontmatter field, the compiler suggests a correction via fuzzy matching. Look for “Did you mean” hints in the output (e.g., permisionspermissions).

Detected during compilation when frontmatter does not conform to the JSON schema.

ErrorCauseFix
frontmatter not properly closedMissing closing --- delimiterEnclose frontmatter between two --- lines
failed to parse frontmatter: ...Invalid YAML syntaxCheck indentation (spaces, not tabs), colons followed by spaces, quoted special characters
timeout-minutes must be an integerWrong value typeUse the documented type — e.g., timeout-minutes: 10, not "10"
Unknown property: ...Misspelled field nameApply the “Did you mean” suggestion; see Frontmatter Reference
imports field must be an array of stringsWrong syntax for imports:Use list form: - shared/tools.md
multiple agent files found in imports: ...More than one agent file importedImport only one file from .github/agents/ per workflow

Raised when converting the .md workflow to its .lock.yml.

ErrorCauseFix
workflow file not found: ...Path is wrong or missingVerify the file exists under .github/workflows/; run gh aw compile to compile all
failed to resolve import '...'Import path or permissionsConfirm the file exists relative to repo root and is readable
invalid workflowspec: must be owner/repo/path[@ref]Wrong remote import formatUse owner/repo/path[@ref] (e.g., github/gh-aw/.github/workflows/shared/example.md@main)
section 'name' not foundReferenced section missingInternal processing issue — verify the section exists; report if persistent

Raised when the compiled workflow executes in GitHub Actions.

The stop-after and similar fields accept relative deltas (+24h, +3d, +1d12h30m) and absolute dates (2025-12-31, December 31, 2025).

ErrorFix
invalid time delta format: ...Use supported units: h (minimum), d, w, mo
minute unit 'm' is not allowed for stop-afterConvert minutes to hours, rounding up (e.g., +2h instead of +90m)
time delta too large: ...Stay within: 12 months, 52 weeks, 365 days, 8760 hours
duplicate unit '[unit]' in time deltaCombine values for the same unit (e.g., +3d instead of +1d2d)
unable to parse date-time: ...Use a supported format like 2025-12-31 23:59:59, December 31, 2025, or 12/31/2025
ErrorFix
jq not found in PATHInstall jq — Ubuntu/Debian: sudo apt-get install jq; macOS: brew install jq
authentication requiredRun gh auth login, or ensure GITHUB_TOKEN is available in Actions
ErrorFix
manual-approval value must be a stringUse a string: manual-approval: "Approve deployment to production"
invalid frontmatter key 'triggers:'Use on: instead of triggers: to match standard GitHub Actions syntax — see Triggers
invalid on: section formatFollow GitHub Actions syntax (e.g., on: push, on: { push: { branches: [main] } })
ErrorFix
failed to read file ...Verify the file exists, is readable, and the disk is not full
failed to create .github/workflows directoryCheck filesystem permissions and disk space
workflow file '...' already exists. Use --force to overwriteRe-run with --force (e.g., gh aw init my-workflow --force)
ErrorFix
failed to parse existing mcp.json: ...Validate JSON (cat .github/mcp.json | jq .) or delete to regenerate
failed to marshal mcp.json: ...Internal error — report with reproduction steps
http MCP tool '...' missing required 'url' fieldAdd url: to the HTTP MCP server configuration
unable to determine MCP type for tool '...'Specify at least one of type, url, command, or container
tool '...' mcp configuration cannot specify both 'container' and 'command'Use either container: or command:, not both
tool '...' mcp configuration with type 'http' cannot use 'container' fieldRemove container: from HTTP MCP servers (only valid for stdio)

Strict mode is the default. To opt out, use gh aw compile without --strict and avoid strict: false in frontmatter — see Strict Mode.

ErrorFix
'network' configuration is requiredAdd network: defaults, explicit allowed domains, or network: {} to deny all
write permission 'contents: write' is not allowedUse safe outputs (e.g., create-issue, create-pull-request) instead of write permissions
wildcard '*' is not allowed in network.allowed domainsUse specific domains, wildcard patterns (*.cdn.example.com), or ecosystem identifiers (python, node)
custom MCP server '...' with container must have network configurationAdd network: with allowed domains to containerized MCP servers
engine does not support firewallUse an engine with firewall support (e.g., copilot), or remove --strict
This workflow is running on a public repository but was not compiled with strict mode.Recompile with gh aw compile --strict
ErrorFix
cannot use 'command' with 'issues' in the same workflowRemove the conflicting event trigger — command: auto-handles these events. Use events: inside the command to restrict scope
workflow uses safe-outputs.create-issue but repository ... does not have issues enabledEnable the feature in Settings → General → Features, or use a different safe output
job name cannot be emptyInternal error — report with your workflow file

Tool Not Found After Migrating to Toolsets

Section titled “Tool Not Found After Migrating to Toolsets”

The tool may be in a different toolset, or you chose a narrower one. Check GitHub Toolsets, run gh aw mcp inspect <workflow> to list available tools, then add the required toolset.

invalid toolset: '...' is not a valid toolset — valid names: context, repos, issues, pull_requests, users, actions, code_security, discussions, labels, notifications, orgs, projects, gists, search, dependabot, experiments, secret_protection, security_advisories, stargazers, default, all.

When both toolsets: and allowed: are specified, allowed: restricts tools to only those listed within the enabled toolsets. Prefer using only toolsets::

# Recommended
tools:
github:
toolsets: [issues]
# Advanced: restrict within toolset
tools:
github:
toolsets: [issues]
allowed: [create_issue]

GitHub MCP server read-only mode cannot be disabled — the GitHub MCP server is always read-only. Remove read-only: false (or set it to true). Use safe outputs for write operations.

  • Use --verbose for detailed error information
  • Validate YAML syntax and file paths
  • Consult the Frontmatter Reference
  • Compile frequently to catch errors early; use --strict to surface security issues
  • Add features incrementally

If your error isn’t listed:

  1. Re-run with gh aw compile --verbose
  2. Search this page (Ctrl+F / Cmd+F) for keywords from the error
  3. Use an agent with the debug.md prompt to investigate failing runs
  4. Review workflow patterns and Common Issues
  5. Report the issue on GitHub