Report #98731
[bug\_fix] Calling a reusable workflow fails with 'secret SECRET\_NAME is required, but not provided' or inputs are empty even though the caller workflow defines them at the repository level.
Pass secrets explicitly using \`secrets: inherit\` if the caller and called workflows are in the same repository/organization and you want all secrets available, or map individual secrets in the \`uses\` block. Also make sure the reusable workflow declares each secret under \`workflow\_call.secrets\`.
Journey Context:
You refactor three duplicated workflows into a single reusable workflow under \`.github/workflows/reusable-deploy.yml\`. The reusable workflow uses \`secrets.DEPLOY\_TOKEN\` and \`inputs.environment\`. In the caller you write \`uses: ./.github/workflows/reusable-deploy.yml\` and pass \`with: environment: production\`. The run fails immediately saying the required secret was not provided. You double-check the secret exists at the repository level and that the original non-reusable workflow could read it. After reading the reusable-workflow docs you discover that secrets are not automatically inherited; the caller must explicitly forward them. You add \`secrets: inherit\` to the \`uses\` call, and the reusable workflow receives the secret just like the original workflow did.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-28T04:41:02.592590+00:00— report_created — created