Shopify-cli does not run on nodejs v25.2.0

I have reproduced the issue on the latest CLI version.

Yes, I am on the latest version

I have searched existing posts and this report is not a duplicate.

Yes, this isn’t a duplicate

In which of these areas are you experiencing a problem?

Other

Expected behavior

shopify-cli runs

Actual behavior

shopify-cli throws DOMException [SecurityError] on nodejs v25.2.0 and then quits.

Reproduction steps

Install shopify-cli on nodejs v25.2.0 and attempt to run it (installed globally via yarn in this case, but is a nodejs error).

Verbose output

node:internal/webstorage:28
          throw lazyDOMException(
                ^

DOMException [SecurityError]: Cannot initialize local storage without a `--localstorage-file` path
    at Object.get [as localStorage] (node:internal/webstorage:28:17)
    at get localStorage (node:internal/util:660:20)
    at file:///home/ewanm89/.config/yarn/global/node_modules/@shopify/cli/dist/chunk-HA7O3IAH.js:3981:35

Node.js v25.2.0

Operating system

Arch Linux

CLI version

3.87.2

Shell

tested on zsh and bash

Nodejs version

v25.2.0 (is fine on v25.1.0)

What language and version are you using in your application?

Just shopify liquid theming in this case

Hi @ewanm89

Which command(s) fail on this node version?

From what I could tell at the time all of them. Even incomplete commands and just--help failed to run to give me the list of available commands.

Your developers should probably confirm this.
it is the initialisation of the V8 (the Javascript engine from Google Chrome/Chromium that NodeJS uses) LocalStorage API stuff which I expect is is used to store all the settings and login information, this even gets initialised on all invocations whatever command is used, even the help and incomplete ones that list the available commands.

This seems to some new security thing in either V8 or NodeJS in how it is initialised. I found another javascript project with a similar issue with the new NodeJS release.

I have stuff I need to do so I rolled back my NodeJS install and had to re-authenticate the store.

+1

We’re experiencing the same issue at our organization and are unable to deploy our themes. We will continue to monitor this but in the meantime we’ll strictly use an older version of Node.

Using @shopify/cli@3.76.2

node:internal/webstorage:28
          throw lazyDOMException(
                ^

DOMException [SecurityError]: Cannot initialize local storage without a `--localstorage-file` path
    at Object.get [as localStorage] (node:internal/webstorage:28:17)
    at get localStorage (node:internal/util:660:20)
    at file:///agent/_work/_tool/node/25.2.0/x64/lib/node_modules/@shopify/cli/dist/chunk-CP3BRHWK.js:7:35
    at ModuleJob.run (node:internal/modules/esm/module_job:413:25)
    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:654:26)
    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5)

Node.js v25.2.0

+1
Can confirm, same issue in our pipeline.

I am on Windows 11 and it has been working flawlessly for a couple months now until just a couple of days ago and now I get that same error with the same versions installed. I can’t even run “shopify” I get the same error message. I uninstalled everything and reinstalled and I get the same thing.

Thanks folks, I’m raising internally now. Node 24 is the default for Shopify CLI but we’ll definitely need to address this soon.

Thanks Gray!
You could specify the supported/tested node versions for CLI in the engines section of package.json.
see package.json | npm Docs

Downgrade to Node v25.1.0 worked around the issue for us.

That doesn’t help too much for global installs on system nodejs for end user though. That is more for webapp packaging and such.

Upgrade via brew is broken since the installation uses it’s internal node version (v25.2.0).

brew upgrade shopify-cli

We’ve released a patch (3.87.4) which resolves the issue with nodejs 25.2.0.

3 Likes

Yay, 3.87.4 works on nodejs v25.2.0