Skip to content

Build failure: shopify-cli #476726

Description

@Rhys-T

Nixpkgs version

  • Unstable (26.05)

Steps to reproduce

nix build 'nixpkgs#shopify-cli'
# or
nix-build '<nixpkgs>' -A shopify-cli

Can Hydra reproduce this build failure?

Yes, Hydra can reproduce this build failure.

Link to Hydra build job

Linux: x86-64, aarch64; macOS/Darwin: x86_64, aarch64

Relevant log output

[linux-x86_64 version. Cut down to fit template - check links above for full version.]
Using versionCheckHook
Running phase: unpackPhase
unpacking source archive /nix/store/7h7cyicni0am2pgf0645b2idjxnx9dmg-source
source root is source
Running phase: patchPhase
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
no configure script, doing nothing
Executing pnpmConfigHook
 ERROR  EACCES: permission denied, mkdir '/homeless-shelter/.local/share/pnpm/.tools/pnpm/10.11.1_tmp_37'
For help, run: pnpm help
Found 'pnpm' with version ''
Using fetcherVersion: 2
Configuring pnpm store
/build /build/source
/build/source
Installing dependencies
Scope: all 14 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1933

Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 1933, reused 0, downloaded 0, added 0
Progress: resolved 1933, reused 140, downloaded 0, added 0
[…]
Progress: resolved 1933, reused 1904, downloaded 0, added 1933, done

devDependencies:
+ @bugsnag/source-maps 2.3.3
+ @changesets/cli 2.27.12
+ @graphql-codegen/add 5.0.3
+ @graphql-codegen/cli 5.0.4
+ @graphql-codegen/near-operation-file-preset 3.0.0
+ @graphql-codegen/typed-document-node 5.0.11
+ @graphql-codegen/typescript-operations 4.6.1
+ @nx/eslint-plugin 21.5.2
+ @nx/workspace 21.5.2
+ @octokit/rest 22.0.0
+ @shopify/eslint-plugin-cli @shopify/eslint-plugin-cli@file:packages/eslint-plugin-cli(eslint@8.57.1)(prettier@2.8.8)(typescript@5.8.3)(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.1))
+ @shopify/generate-docs 0.15.6
+ @types/node 18.19.70
+ @types/tmp 0.2.6
+ @typescript-eslint/parser 7.18.0
+ @vitest/coverage-istanbul 3.2.1
+ ansi-colors 4.1.3
+ bugsnag-build-reporter 2.0.0
+ commander 9.5.0
+ esbuild 0.25.10
+ eslint 8.57.1
+ execa 7.2.0
+ fast-glob 3.3.3
+ find-up 6.3.0
+ fs-extra 11.1.0
+ graphql 16.10.0
+ graphql-codegen-typescript-operation-types 2.0.1
+ graphql-tag 2.12.6
+ json-stringify-deterministic 1.0.12
+ knip 5.59.1
+ liquidjs 10.20.1
+ node-fetch 3.3.2
+ nx 21.6.3
+ oclif 4.22.29
+ octokit-plugin-create-pull-request 3.13.1
+ pathe 1.1.1
+ pin-github-action 3.3.1
+ react 17.0.2
+ rimraf 3.0.2
+ tmp 0.2.4
+ ts-node 10.9.2
+ typescript 5.8.3
+ vitest 3.2.1
+ zod 3.24.1

Done in 9.5s using pnpm v10.26.1
Patching scripts
patching script interpreter paths in node_modules/@babel node_modules/@bugsnag node_modules/@changesets node_modules/@eslint node_modules/@eslint-community node_modules/@graphql-codegen node_modules/@nicolo-ribaudo node_modules/@nx node_modules/@octokit node_modules/@shopify node_modules/@types node_modules/@typescript-eslint node_modules/@vitejs node_modules/@vitest node_modules/ansi-colors node_modules/bugsnag-build-reporter node_modules/commander node_modules/esbuild node_modules/eslint node_modules/eslint-config-prettier node_modules/eslint-import-resolver-node node_modules/eslint-module-utils node_modules/eslint-plugin-es node_modules/eslint-plugin-eslint-comments node_modules/eslint-plugin-import node_modules/eslint-plugin-jest node_modules/eslint-plugin-jest-formatting node_modules/eslint-plugin-jsdoc node_modules/eslint-plugin-jsx-a11y node_modules/eslint-plugin-no-catch-all node_modules/eslint-plugin-node node_modules/eslint-plugin-prettier node_modules/eslint-plugin-promise node_modules/eslint-plugin-react node_modules/eslint-plugin-react-hooks node_modules/eslint-plugin-sort-class-members node_modules/eslint-plugin-tsdoc node_modules/eslint-plugin-unused-imports node_modules/eslint-plugin-vitest node_modules/eslint-rule-composer node_modules/eslint-scope node_modules/eslint-utils node_modules/eslint-visitor-keys node_modules/execa node_modules/fast-glob node_modules/find-up node_modules/fs-extra node_modules/graphql node_modules/graphql-codegen-typescript-operation-types node_modules/graphql-tag node_modules/json-stringify-deterministic node_modules/jsonc-eslint-parser node_modules/knip node_modules/liquidjs node_modules/node-fetch node_modules/nx node_modules/oclif node_modules/octokit-plugin-create-pull-request node_modules/pathe node_modules/pin-github-action node_modules/prettier node_modules/prettier-linter-helpers node_modules/react node_modules/rimraf node_modules/tmp node_modules/ts-node node_modules/typescript node_modules/vite node_modules/vite-node node_modules/vitest node_modules/zod node_modules/.bin node_modules/.modules.yaml node_modules/.pnpm node_modules/.pnpm-workspace-state-v1.json
node_modules/.bin/vite-node: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
[…]
node_modules/.pnpm/esbuild@0.25.10/node_modules/esbuild/bin/esbuild: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
node_modules/.pnpm/@luckycatfactory+esbuild-graphql-loader@3.8.1_esbuild@0.25.10_graphql-tag@2.12.6_graphql@16.10.0__graphql@16.10.0/node_modules/@luckycatfactory/esbuild-graphql-loader/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
Finished pnpmConfigHook
Running phase: buildPhase

> @0.0.0 bundle-for-release /build/source
> nx run-many --target=bundle --all --skip-nx-cache --disableRemoteCache=true --nxBail=true --outputStyle=static

⠋ Calculating the project graph on the Nx Daemon⠙ Calculating the project graph on the Nx Daemon⠹ Calculating the project graph on the Nx Daemon⠸ Calculating the project graph on the Nx Daemon⠼ Calculating the project graph on the Nx Daemon⠴ Calculating the project graph on the Nx Daemon⠦ Calculating the project graph on the Nx Daemon⠧ Calculating the project graph on the Nx Daemon⠇ Calculating the project graph on the Nx Daemon⠏ Calculating the project graph on the Nx Daemon⠋ Calculating the project graph on the Nx Daemon⠙ Calculating the project graph on the Nx Daemon⠹ Calculating the project graph on the Nx Daemon⠸ Calculating the project graph on the Nx Daemon⠼ Calculating the project graph on the Nx Daemon⠴ Calculating the project graph on the Nx Daemon⠦ Calculating the project graph on the Nx Daemon⠧ Calculating the project graph on the Nx Daemon⠇ Calculating the project graph on the Nx Daemon⠏ Calculating the project graph on the Nx Daemon⠋ Calculating the project graph on the Nx Daemon⠙ Calculating the project graph on the Nx Daemon⠹ Calculating the project graph on the Nx Daemon
 NX   Running target bundle for 2 projects and 12 tasks they depend on:

- create-app
- cli

———————————————————————————————————————————————————————————————————————————————

 NX   Remote Cache Disabled

Nx will continue running, but nothing will be written or read from the remote cache.


> nx run ui-extensions-server-kit:"build:code"

> pnpm vite build --config vite.config.ts

▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]

    package.json:17:6:
      17 │       "types": "./index.d.ts"
         ╵       ~~~~~~~

  The "import" condition comes earlier and will be used for all "import" statements:

    package.json:16:6:
      16 │       "import": "./index.mjs",
         ╵       ~~~~~~~~

  The "require" condition comes earlier and will be used for all "require" calls:

    package.json:15:6:
      15 │       "require": "./index.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]

    package.json:22:6:
      22 │       "types": "./testing.d.ts"
         ╵       ~~~~~~~

  The "import" condition comes earlier and will be used for all "import" statements:

    package.json:21:6:
      21 │       "import": "./testing.mjs",
         ╵       ~~~~~~~~

  The "require" condition comes earlier and will be used for all "require" calls:

    package.json:20:6:
      20 │       "require": "./testing.js",
         ╵       ~~~~~~~~~

vite v6.3.6 building for production...

(!) outDir /build/source/packages/ui-extensions-server-kit/dist is not inside project root and will not be emptied.
Use --emptyOutDir to override.

transforming...
✓ 33 modules transformed.
rendering chunks...
computing gzip size...
../dist/utilities/noop.cjs.js                               0.11 kB │ gzip: 0.12 kB
../dist/state/reducers/constants.cjs.js                     0.14 kB │ gzip: 0.15 kB
../dist/types.cjs.js                                        0.14 kB │ gzip: 0.14 kB
../dist/ExtensionServerClient/types.cjs.js                  0.19 kB │ gzip: 0.18 kB
../dist/utilities/assetToString.cjs.js                      0.22 kB │ gzip: 0.18 kB
../dist/utilities/isValidSurface.cjs.js                     0.22 kB │ gzip: 0.21 kB
../dist/hooks/useExtensionServerContext.cjs.js              0.23 kB │ gzip: 0.18 kB
../dist/utilities/isUIExtension.cjs.js                      0.23 kB │ gzip: 0.19 kB
../dist/utilities/set.cjs.js                                0.27 kB │ gzip: 0.22 kB
../dist/utilities/replaceUpdated.cjs.js                     0.28 kB │ gzip: 0.22 kB
../dist/hooks/useIsomorphicLayoutEffect.cjs.js              0.28 kB │ gzip: 0.22 kB
../dist/testing/app.cjs.js                                  0.29 kB │ gzip: 0.23 kB
../dist/hooks/useExtensionServerState.cjs.js                0.32 kB │ gzip: 0.22 kB
../dist/index.cjs2.js                                       0.35 kB │ gzip: 0.19 kB
../dist/context/constants.cjs.js                            0.41 kB │ gzip: 0.26 kB
../dist/state/actions/actions.cjs.js                        0.46 kB │ gzip: 0.22 kB
../dist/testing/MockExtensionServerProvider.cjs.js          0.62 kB │ gzip: 0.31 kB
../dist/context/ExtensionServerProvider.cjs.js              1.08 kB │ gzip: 0.50 kB
../dist/testing/extensions.cjs.js                           1.10 kB │ gzip: 0.58 kB
../dist/i18n.cjs.js                                         1.28 kB │ gzip: 0.63 kB
../dist/state/reducers/extensionServerReducer.cjs.js        1.36 kB │ gzip: 0.52 kB
../dist/index.cjs.js                                        2.18 kB │ gzip: 0.62 kB
../dist/ExtensionServerClient/ExtensionServerClient.cjs.js  4.40 kB │ gzip: 1.62 kB
../dist/utilities/noop.es.js                               0.05 kB │ gzip: 0.06 kB
../dist/state/reducers/constants.es.js                     0.08 kB │ gzip: 0.09 kB
../dist/types.es.js                                        0.10 kB │ gzip: 0.11 kB
../dist/ExtensionServerClient/types.es.js                  0.13 kB │ gzip: 0.14 kB
../dist/utilities/assetToString.es.js                      0.16 kB │ gzip: 0.14 kB
../dist/utilities/isValidSurface.es.js                     0.16 kB │ gzip: 0.16 kB
../dist/utilities/isUIExtension.es.js                      0.18 kB │ gzip: 0.15 kB
../dist/hooks/useExtensionServerContext.es.js              0.18 kB │ gzip: 0.14 kB
../dist/hooks/useIsomorphicLayoutEffect.es.js              0.24 kB │ gzip: 0.19 kB
../dist/utilities/replaceUpdated.es.js                     0.28 kB │ gzip: 0.19 kB
../dist/utilities/set.es.js                                0.28 kB │ gzip: 0.19 kB
../dist/hooks/useExtensionServerState.es.js                0.29 kB │ gzip: 0.18 kB
../dist/testing/app.es.js                                  0.29 kB │ gzip: 0.19 kB
../dist/index.es2.js                                       0.30 kB │ gzip: 0.15 kB
../dist/context/constants.es.js                            0.39 kB │ gzip: 0.23 kB
../dist/state/actions/actions.es.js                        0.50 kB │ gzip: 0.18 kB
../dist/testing/MockExtensionServerProvider.es.js          0.72 kB │ gzip: 0.34 kB
../dist/context/ExtensionServerProvider.es.js              1.27 kB │ gzip: 0.56 kB
../dist/i18n.es.js                                         1.51 kB │ gzip: 0.68 kB
../dist/testing/extensions.es.js                           1.81 kB │ gzip: 0.79 kB
../dist/state/reducers/extensionServerReducer.es.js        1.82 kB │ gzip: 0.55 kB
../dist/index.es.js                                        2.28 kB │ gzip: 0.67 kB
../dist/ExtensionServerClient/ExtensionServerClient.es.js  5.62 kB │ gzip: 1.82 kB
✓ built in 289ms

> nx run ui-extensions-test-utils:build

> pnpm tsc


> nx run cli-kit:build

> pnpm tsc -b ./tsconfig.build.json

(node:5254) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)

> nx run ui-extensions-server-kit:"build:types"

> pnpm tsc --emitDeclarationOnly


> nx run ui-extensions-server-kit:build

> cd .


> nx run plugin-cloudflare:build

> pnpm tsc -b ./tsconfig.build.json

(node:5254) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:5254) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGTERM listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:5254) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGHUP listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit

> nx run theme:build

> pnpm tsc -b ./tsconfig.build.json


> nx run ui-extensions-dev-console:build

> pnpm vite build

vite v6.3.6 building for production...

(!) outDir /build/source/packages/app/assets/dev-console is not inside project root and will not be emptied.
Use --emptyOutDir to override.

transforming...
../../node_modules/.pnpm/react-toastify@9.1.3_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-toastify/dist/react-toastify.esm.mjs (1:0): Module level directives cause errors when bundled, "use client" in "../../node_modules/.pnpm/react-toastify@9.1.3_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-toastify/dist/react-toastify.esm.mjs" was ignored.
✓ 786 modules transformed.
rendering chunks...
computing gzip size...
../app/assets/dev-console/extensions/dev-console/assets/site-B9Ae890R.webmanifest        0.43 kB
../app/assets/dev-console/extensions/dev-console/assets/favicon-16x16-B6uL8SrV.png       0.74 kB
../app/assets/dev-console/extensions/dev-console/assets/favicon-32x32-CGwlpz_y.png       0.99 kB
../app/assets/dev-console/index.html                                                     2.31 kB │ gzip:  1.05 kB
../app/assets/dev-console/extensions/dev-console/assets/apple-touch-icon-BXMqQaSW.png    3.25 kB
../app/assets/dev-console/extensions/dev-console/assets/favicon-ByUl89Ab.ico            15.09 kB
../app/assets/dev-console/extensions/dev-console/assets/index-BteeGmYf.css              21.87 kB │ gzip:  4.79 kB
../app/assets/dev-console/extensions/dev-console/assets/index-Cj8WCHlM.js              254.29 kB │ gzip: 84.63 kB
✓ built in 2.92s

> nx run plugin-did-you-mean:build

> pnpm tsc -b ./tsconfig.build.json


> nx run app:build

> pnpm tsc -b ./tsconfig.build.json


> nx run create-app:build

> pnpm tsc -b ./tsconfig.build.json


> nx run cli:build

> pnpm tsc -b ./tsconfig.build.json


> nx run create-app:bundle

> node bin/bundle


> nx run cli:bundle

> node bin/bundle


———————————————————————————————————————————————————————————————————————————————

 NX   Successfully ran target bundle for 2 projects and 12 tasks they depend on


buildPhase completed in 34 seconds
Running phase: installPhase
/build/source/packages/cli /build/source
/build/source
 WARN  using --force I sure hope you know what you are doing
Scope: all 13 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +1117

Progress: resolved 0, reused 1, downloaded 0, added 0
Progress: resolved 0, reused 26, downloaded 0, added 0
Progress: resolved 0, reused 352, downloaded 0, added 0
Progress: resolved 0, reused 649, downloaded 0, added 0
Progress: resolved 0, reused 904, downloaded 0, added 0
Progress: resolved 0, reused 962, downloaded 0, added 11
Progress: resolved 0, reused 1002, downloaded 0, added 15
[…]
Progress: resolved 0, reused 1027, downloaded 0, added 1101
 ERR_PNPM_ENOTDIR  ENOTDIR: not a directory, rename '/build/source/packages/cli-kit/node_modules/node-fetch_tmp_6727' -> '/build/source/packages/cli-kit/node_modules/node-fetch'
Progress: resolved 0, reused 1027, downloaded 0, added 1101

Additional context

Seems to have something to do with nodejs becoming nodejs_24 by default (#462407, merged in #471587). If I override it back to nodejs_22 for pnpm, shopify-cli builds correctly. Overriding nodejs for shopify-cli itself doesn't seem to affect anything.

{ pkgs ? import <nixpkgs> {} }: with pkgs; {
    this-works = shopify-cli.override {
        pnpm = pnpm.override {
            nodejs = nodejs_22;
        };
    };
    this-doesn't = shopify-cli.override {
        nodejs = nodejs_22;
    };
}

System metadata

  • system: "x86_64-darwin"
  • host os: Darwin 24.5.0, macOS 15.5
  • multi-user?: yes
  • sandbox: no
  • version: nix-env (Nix) 2.31.2
  • channels(root): "nixpkgs"
  • nixpkgs: /nix/store/q7v9hjls01b066fb28df3jpxbz7zxfm3-nixpkgs/nixpkgs

Notify maintainers

@fd @onny


Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)

I assert that this issue is relevant for Nixpkgs

Is this issue important to you?

Add a 👍 reaction to issues you find important.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: build failureA package fails to build6.topic: nodejsNode.js is a free, open-source, cross-platform JavaScript runtime environment

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions