Skip to content
Latchkey

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

  1. Replace each "::set-output name=key::value" with "echo \"key=value\" >> $GITHUB_OUTPUT".
  2. Update any third-party actions to versions that use environment files.
  3. 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

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