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.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →