Skip to content
Latchkey

GitHub Actions composite action inputs not passed

Inside a composite action, declared inputs are available as \${{ inputs.name }}. Referencing them as plain env vars, or forgetting to declare them in action.yml, leaves them empty at runtime.

What this error means

A composite action receives no value for an input, even though the caller passed with: values, because the action referenced it incorrectly.

github-actions
# inputs.token is empty because the step used $TOKEN instead of inputs.token
run: echo "Using $TOKEN"

Common causes

Input referenced as env, not inputs context

Composite run steps must use \${{ inputs.name }} to read declared inputs.

Input not declared in action.yml

An input not listed under inputs: is not available to the action.

How to fix it

Declare and reference inputs correctly

  1. List the input under inputs: in action.yml.
  2. Reference it as \${{ inputs.name }} in composite run steps.
  3. Or map it to a step env var explicitly, then read that env var.
action.yml
# action.yml
inputs:
  token:
    required: true
runs:
  using: composite
  steps:
    - shell: bash
      run: echo "Using ${{ inputs.token }}"

How to prevent it

  • Always reference composite inputs via the inputs context.
  • Declare every expected input in action.yml.

Frequently asked questions

What causes "composite inputs not passed"?
Composite run steps must use \${{ inputs.name }} to read declared inputs.
How do I fix composite inputs not passed?
Declare and reference inputs correctly

Related guides

References

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