Skip to content
Latchkey

GitHub Actions GITHUB_OUTPUT not set / set-output deprecated

The ::set-output:: workflow command was deprecated and disabled. Steps must now write key=value lines to the file at \${GITHUB_OUTPUT}; the old command produces no output and may warn or error.

What this error means

A downstream reference to steps.<id>.outputs.* is empty, and logs show a deprecation warning for set-output or no output is recorded at all.

github-actions
Error: Unable to process command '::set-output name=foo::bar' successfully.
The `set-output` command is deprecated and disabled.

Common causes

Using ::set-output::

The workflow command form was removed; outputs are not captured.

Writing to the wrong target

Echoing to stdout instead of the GITHUB_OUTPUT file does not set an output.

How to fix it

Write to the GITHUB_OUTPUT file

  1. Append key=value to \${GITHUB_OUTPUT}.
  2. Give the step an id so the output can be referenced.
  3. Reference it as steps.<id>.outputs.<key>.
.github/workflows/ci.yml
- id: meta
  run: echo "version=1.2.3" >> "${GITHUB_OUTPUT}"
- run: echo "Built ${{ steps.meta.outputs.version }}"

How to prevent it

  • Replace all ::set-output:: usages with GITHUB_OUTPUT writes.
  • Keep third-party actions updated so they use the file-based commands.

Related guides

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