set-output command is deprecated CI/CD Origin: Build & delivery Last updated 25 Oct 2026

GitHub Actions: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files

Workflows (or old actions) still use ::set-output, which must be replaced by writing to the $GITHUB_OUTPUT file.

Exact message you may see The `set-output` command is deprecated and will be disabled soonset-output command is deprecatedPlease upgrade to using Environment FilesThe `save-state` command is deprecated::set-output name=
Seen on: GitHub Actions

Meaning

The old workflow commands were insecure. Replace echo "::set-output name=x::y" with echo "x=y" >> "$GITHUB_OUTPUT". The same applies to save-state ($GITHUB_STATE). If a third-party action triggers the warning, update that action.

Common causes

  • echo "::set-output name=...::..." in your scripts
  • Old versions of actions that use the toolkit's setOutput
  • Copy-pasted snippet from an older tutorial
  • save-state used the same way

⚡ Quick fix

  1. Write outputs with echo "name=value" >> "$GITHUB_OUTPUT"
  2. Update the action named in the warning
  3. Search the repo: grep -R "::set-output" .github

Detailed fix by platform

GitHub Actions

  1. Multi-line output: { echo 'body<<EOF'; cat file.txt; echo EOF; } >> "$GITHUB_OUTPUT"

Code examples

New syntax

yaml
- id: ver
  run: echo "version=$(cat VERSION)" >> "$GITHUB_OUTPUT"      # was ::set-output name=version::...
- run: echo "Building ${{ steps.ver.outputs.version }}"

How to diagnose

  1. Source — Your script or an action?
  2. Version — Latest version of that action?
  3. Search — grep for ::set-output

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):

API rate limit exceeded — GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit (CI/CD)API rate limit exceed…Cache not found / Unable to reserve cache — GitHub Actions: Cache not found for input keys: npm-Linux-abc123 / Failed to save: Unable to reserve cache with key, another job may be creating this cache (CI/CD)Cache not found / Una…Credentials could not be loaded — GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers (CI/CD)Credentials could not…Node.js 16 actions are deprecated — GitHub Actions: Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3 (CI/CD)Node.js 16 actions ar…The set-env command is disabled — GitHub Actions: Error: Unable to process command '::set-env name=X::y' successfully. The `set-env` command is disabled (CI/CD)The set-env command i…Unable to download artifact — GitHub Actions: Error: Unable to download artifact(s): Artifact not found for name: build (CI/CD)Unable to download ar…Unable to process file command — GitHub Actions: Error: Unable to process file command 'output' successfully. Invalid format 'x' (CI/CD)Unable to process fil…set-outpu…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.