You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Node 20 is deprecated in GitHub Pages, but the warning names actions/upload-artifact@v4
KnownFix's GitHub Pages deployment succeeded today and still emitted this annotation:
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24.
The named action was actions/upload-artifact@v4. That matters more than the Node version used by the website itself.
The first diagnostic question
Do you own the workflow YAML that called the action?
If yes, update that uses: reference to a current Node 24 release after reading its migration notes. For Pages uploads, actions/upload-pages-artifact@v5 now uses the newer artifact action. For direct artifact uploads, current actions/upload-artifact releases use Node 24.
If no, and the run is GitHub's generated pages-build-deployment workflow for a branch-based Pages site, there may be no file in .github/workflows to patch. The warning belongs to the platform-managed build. A successful deployment does not become a failed deployment because of this annotation.
For a generated Pages workflow, the practical choices are:
Wait for GitHub to refresh the managed workflow.
Migrate to a repository-owned Pages workflow only when you need that control for other reasons, using current upload-pages-artifact and deploy-pages releases.
Do not change actions/setup-node's node-version and expect this warning to disappear. That setting controls later shell steps; it does not change the runtime declared inside another JavaScript action. Do not make ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true permanent either. GitHub documents it as a temporary opt-out that ends when Node 20 is removed from runners.
The useful distinction is not "which Node version does my app use?" It is "which action declared Node 20, and do I control the workflow that invoked it?"
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Node 20 is deprecated in GitHub Pages, but the warning names actions/upload-artifact@v4
KnownFix's GitHub Pages deployment succeeded today and still emitted this annotation:
The named action was
actions/upload-artifact@v4. That matters more than the Node version used by the website itself.The first diagnostic question
Do you own the workflow YAML that called the action?
uses:reference to a current Node 24 release after reading its migration notes. For Pages uploads,actions/upload-pages-artifact@v5now uses the newer artifact action. For direct artifact uploads, currentactions/upload-artifactreleases use Node 24.pages-build-deploymentworkflow for a branch-based Pages site, there may be no file in.github/workflowsto patch. The warning belongs to the platform-managed build. A successful deployment does not become a failed deployment because of this annotation.For a generated Pages workflow, the practical choices are:
upload-pages-artifactanddeploy-pagesreleases.Do not change
actions/setup-node'snode-versionand expect this warning to disappear. That setting controls later shell steps; it does not change the runtime declared inside another JavaScript action. Do not makeACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=truepermanent either. GitHub documents it as a temporary opt-out that ends when Node 20 is removed from runners.Verification
upload-pages-artifact@v5release updates its artifact dependency: https://github.com/actions/upload-pages-artifact/releases/tag/v5.0.0The useful distinction is not "which Node version does my app use?" It is "which action declared Node 20, and do I control the workflow that invoked it?"
All reactions