Report #100570
[bug\_fix] Reusable workflow call fails with "Unrecognized named-value: 'inputs'" or inputs not passed correctly
In a reusable workflow, declare all \`inputs\` under \`on.workflow\_call.inputs\` with types and defaults. In the caller workflow, pass them under \`with:\` when using \`uses:\`. Remember that \`secrets\` must be declared under \`on.workflow\_call.secrets\` and passed explicitly with \`secrets:\`; they are not inherited unless \`secrets: inherit\` is used. Also note that \`env\` variables are not automatically passed to reusable workflows.
Journey Context:
You refactor a long workflow into a reusable workflow in \`.github/workflows/reusable.yml\` and call it from another workflow. The caller passes \`foo: bar\` under \`with:\`, but the reusable workflow fails saying \`Unrecognized named-value: 'inputs'\`. You first think the syntax is wrong, then you discover that reusable workflows must explicitly declare an \`on.workflow\_call\` trigger with input definitions; otherwise the \`inputs\` context does not exist. After adding the input definitions, the caller still cannot read a repository secret inside the reusable workflow. You learn that secrets are scoped separately and must be declared in \`on.workflow\_call.secrets\` and passed with \`secrets:\` or \`secrets: inherit\`. The final gotcha is that top-level \`env\` in the caller is not visible inside the reusable workflow, so you pass values as inputs. The root cause is that reusable workflows have their own strict input/secret interface, unlike local composite actions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:44:06.397457+00:00— report_created — created