Skip to content
Latchkey

GitHub Actions composite action "Required property is missing: shell" in CI

Composite actions do not inherit a default shell. Every run step inside an action.yml of runs.using: composite must declare shell:, or the action fails to load.

What this error means

Using a composite action fails with "Required property is missing: shell" pointing at a run step in the action manifest.

GitHub Actions
Error: .github/actions/setup/action.yml
(Line: 8, Col: 7): Required property is missing: shell

Common causes

A composite run step has no shell

Unlike workflow jobs, composite run steps have no default shell and must each set one.

Copied a workflow step into an action

A step moved from a workflow (which had a default shell) into a composite action loses that default.

How to fix it

Add shell to every composite run step

  1. Open the composite action.yml.
  2. Add shell: bash (or pwsh, sh) to each run step.
  3. Re-run the workflow that uses the action.
action.yml
runs:
  using: composite
  steps:
    - run: echo "building"
      shell: bash

Pick a shell available on the runner

Use bash on Linux/macOS, pwsh cross-platform, or cmd/powershell on Windows runners.

How to prevent it

  • Always set shell on composite run steps.
  • Lint the action manifest against the schema.
  • Standardize on one shell across the action.

Frequently asked questions

What causes ""Required property is missing: shell""?
Unlike workflow jobs, composite run steps have no default shell and must each set one.
How do I fix "Required property is missing: shell"?
Add shell to every composite run step

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card