GitHub Actions "set-output command is deprecated and disabled"
The "::set-output name=...::" workflow command was deprecated and is now disabled for security. Steps still using it silently fail to set outputs, breaking downstream references.
What this error means
A step prints a deprecation warning (or its output is simply empty), and later steps that read the output get nothing.
github-actions
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files.Common causes
Legacy ::set-output:: still in use
A run step or older action echoes "::set-output::", which the runner no longer honors.
How to fix it
Write to GITHUB_OUTPUT instead
- Replace each "::set-output name=key::value" with "echo \"key=value\" >> $GITHUB_OUTPUT".
- Update any third-party actions to versions that use environment files.
- Re-run and confirm downstream references resolve.
.github/workflows/ci.yml
- id: meta
run: echo "sha=${GITHUB_SHA}" >> "${GITHUB_OUTPUT}"
- run: echo "built ${{ steps.meta.outputs.sha }}"How to prevent it
- Use GITHUB_OUTPUT environment files for all step outputs.
- Keep third-party actions updated past their set-output deprecation.
Related guides
GitHub Actions "set-env command is disabled for security"Fix the GitHub Actions error where the legacy "::set-env::" workflow command is disabled for security and mus…
GitHub Actions "add-path command is deprecated and disabled"Fix the GitHub Actions error where the legacy "::add-path::" workflow command no longer updates PATH and must…
GitHub Actions multiline output to GITHUB_OUTPUT without a delimiterFix the GitHub Actions error where a multiline step output written to GITHUB_OUTPUT with NAME=value syntax fa…