Skip to content

[CI Failure Doctor] CI Failure Investigation - Run #332: actionlint rejects empty string option in generated workflow #126

@github-actions

Description

@github-actions

Summary

The Lint Workflows job failed because actionlint v1.7.12 rejects an empty string ('') as an option in a workflow_dispatch choice input inside the auto-generated agentics-maintenance.yml file.

Failure Details

  • Run: 24491511686
  • Commit: fbe49a78b247f03a2435f5d93d12e754ee869d5d
  • Trigger: push to main
  • Failed Job: Lint Workflows
  • Passing Jobs: Lint & Format, Typecheck, Typecheck Extension, Lint Extension, all Tests

Root Cause Analysis

The commit "fix: recompile agentic workflow lock files with gh-aw v0.68.3 (#125)" triggered a regeneration of .github/workflows/agentics-maintenance.yml. The gh-aw v0.68.3 compiler generates a workflow_dispatch choice input with an empty string as both the default and as one of the options:

      operation:
        type: choice
        default: ''
        options:
          - ''        # <-- line ~46: actionlint rejects this
          - 'disable'
          - 'enable'
          ...
```

`actionlint` v1.7.12 introduced strict validation that `workflow_dispatch` choice input options must not be empty strings, producing:

```
.github/workflows/agentics-maintenance.yml:46:13: string should not be empty [syntax-check]

This is valid in GitHub Actions (empty string = "no selection"), but actionlint rejects it.

Failed Jobs and Errors

Job Status Error
Lint Workflows ❌ failure .github/workflows/agentics-maintenance.yml:46:13: string should not be empty [syntax-check]

Investigation Findings

  • The file is auto-generated by gh-aw v0.68.3 and should not be manually edited
  • The existing ignore flags in ci.yml (-ignore SC2015 -ignore SC2086) only suppress shellcheck warnings, not this syntax-check error
  • All other jobs (lint, typecheck, tests) passed successfully — this is an isolated linting regression

Recommended Actions

  • Short-term: Add -ignore 'string should not be empty' to the flags in the lint-workflows job in .github/workflows/ci.yml:
    - uses: raven-actions/actionlint@v2
      with:
        flags: "-ignore SC2015 -ignore SC2086 -ignore 'string should not be empty'"
  • Longer-term: Track upstream actionlint and gh-aw for fixes — either actionlint relaxes validation for empty choice options, or gh-aw uses a non-empty placeholder

Prevention Strategies

  • When upgrading gh-aw compiler versions, run actionlint locally before pushing to catch generated-file compatibility issues
  • Consider adding an actionlint.yaml config file for fine-grained per-file suppression of known generated-file patterns

Historical Context

No previous failures of this type were found. All prior CI Failure Doctor investigations were TypeScript-related.

🩺 Diagnosis provided by CI Failure Doctor

  • expires on Apr 17, 2026, 4:14 AM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions