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.

Frequently asked questions

What causes ""set-output is deprecated and disabled""?
A run step or older action echoes "::set-output::", which the runner no longer honors.
How do I fix "set-output is deprecated and disabled"?
Write to GITHUB_OUTPUT instead

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card