Skip to content

[BUG] npm@11.6.3 fails to install with overrides having npm error Cannot read properties of undefined (reading 'ruleset') #8757

@ShGKme

Description

@ShGKme

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

  • On npm v11.6.3 npm ci fails
  • On v11.6.2 and lower no errors

Expected Behavior

npm ci works with overrides.

Steps To Reproduce

  1. package.json:
{
  "name": "@nextcloud/vue",
  "version": "9.2.0",
  "description": "Nextcloud vue components",
  "keywords": [
    "vuejs",
    "nextcloud",
    "components"
  ],
  "homepage": "https://github.com/nextcloud-libraries/nextcloud-vue",
  "bugs": "https://github.com/nextcloud-libraries/nextcloud-vue/issues",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/nextcloud-libraries/nextcloud-vue.git"
  },
  "license": "AGPL-3.0-or-later",
  "author": "Nextcloud GmbH and Nextcloud contributors",
  "type": "module",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.mjs"
    },
    "./components/*": {
      "types": "./dist/components/*/index.d.ts",
      "import": "./dist/components/*/index.mjs"
    },
    "./composables/*": {
      "types": "./dist/composables/*/index.d.ts",
      "import": "./dist/composables/*/index.mjs"
    },
    "./directives/*": {
      "types": "./dist/directives/*/index.d.ts",
      "import": "./dist/directives/*/index.mjs"
    },
    "./functions/*": {
      "types": "./dist/functions/*/index.d.ts",
      "import": "./dist/functions/*/index.mjs"
    }
  },
  "files": [
    "CHANGELOG.md",
    "LICENSE",
    "README.md",
    "dist"
  ],
  "scripts": {
    "build": "vite build --mode production ",
    "dev": "vite build --mode development",
    "l10n:extract": "node build/extract-l10n.mjs",
    "lint": "eslint",
    "lint:fix": "eslint --fix",
    "prerelease:format-changelog": "node build/format-changelog.mjs",
    "styleguide": "vue-styleguidist --config styleguide.config.cjs server",
    "styleguide:build": "vue-styleguidist --config styleguide.config.cjs build",
    "stylelint": "stylelint \"src/**/*.vue\" \"src/**/*.scss\" \"src/**/*.css\"",
    "stylelint:fix": "stylelint \"src/**/*.vue\" \"src/**/*.scss\" \"src/**/*.css\" --fix",
    "test": "vitest run",
    "test:component": "playwright test -c playwright.config.ts",
    "test:component:gui": "playwright test --ui -c playwright.config.ts",
    "test:coverage": "vitest run --coverage",
    "ts:check": "vue-tsc -p src/tsconfig.json --noEmit",
    "update:snapshots": "npm run test:component -- --grep @visual --update-snapshots",
    "watch": "vite build --mode development --watch"
  },
  "browserslist": [
    "extends @nextcloud/browserslist-config"
  ],
  "overrides": {
    "@playwright/experimental-ct-core": {
      "vite": "^6.3.4 || ^7.0.0"
    },
    "mdast-util-gfm": {
      "mdast-util-gfm-autolink-literal": "2.0.0"
    }
  },
  "dependencies": {
    "@ckpack/vue-color": "^1.6.0",
    "@floating-ui/dom": "^1.7.4",
    "@nextcloud/auth": "^2.5.3",
    "@nextcloud/axios": "^2.5.2",
    "@nextcloud/browser-storage": "^0.5.0",
    "@nextcloud/capabilities": "^1.2.1",
    "@nextcloud/event-bus": "^3.3.3",
    "@nextcloud/initial-state": "^3.0.0",
    "@nextcloud/l10n": "^3.4.1",
    "@nextcloud/logger": "^3.0.2",
    "@nextcloud/router": "^3.1.0",
    "@nextcloud/sharing": "^0.3.0",
    "@vuepic/vue-datepicker": "^11.0.3",
    "@vueuse/components": "^14.0.0",
    "@vueuse/core": "^14.0.0",
    "blurhash": "^2.0.5",
    "clone": "^2.1.2",
    "debounce": "^3.0.0",
    "dompurify": "^3.3.0",
    "emoji-mart-vue-fast": "^15.0.5",
    "escape-html": "^1.0.3",
    "floating-vue": "^5.2.2",
    "focus-trap": "^7.6.6",
    "linkifyjs": "^4.3.2",
    "p-queue": "^9.0.0",
    "rehype-external-links": "^3.0.0",
    "rehype-highlight": "^7.0.2",
    "rehype-react": "^8.0.0",
    "remark-breaks": "^4.0.0",
    "remark-parse": "^11.0.0",
    "remark-rehype": "^11.1.2",
    "remark-unlink-protocols": "^1.0.0",
    "splitpanes": "^4.0.4",
    "striptags": "^3.2.0",
    "tabbable": "^6.3.0",
    "tributejs": "^5.1.3",
    "ts-md5": "^2.0.1",
    "unified": "^11.0.5",
    "unist-builder": "^4.0.0",
    "unist-util-visit": "^5.0.0",
    "vue": "^3.5.18",
    "vue-router": "^4.6.3",
    "vue-select": "^4.0.0-beta.6"
  },
  "devDependencies": {
    "@babel/plugin-syntax-import-assertions": "^7.27.1",
    "@babel/plugin-transform-typescript": "^7.28.0",
    "@babel/preset-typescript": "^7.28.5",
    "@fontsource/roboto": "^5.2.8",
    "@mdi/js": "^7.4.47",
    "@mdi/svg": "^7.4.47",
    "@nextcloud/babel-config": "^1.3.0",
    "@nextcloud/browserslist-config": "^3.1.2",
    "@nextcloud/eslint-config": "^9.0.0-rc.5",
    "@nextcloud/stylelint-config": "^3.1.1",
    "@nextcloud/vite-config": "^2.5.0",
    "@nextcloud/webpack-vue-config": "github:nextcloud/webpack-vue-config#vue3",
    "@playwright/experimental-ct-vue": "^1.56.1",
    "@playwright/test": "^1.56.1",
    "@types/gettext-parser": "^8.0.0",
    "@types/node": "^24.10.1",
    "@vitest/coverage-v8": "^4.0.10",
    "@vue/test-utils": "^2.4.6",
    "@vue/tsconfig": "^0.8.1",
    "babel-loader-exclude-node-modules-except": "^1.2.1",
    "core-js": "^3.46.0",
    "eslint": "^9.39.1",
    "file-loader": "^6.2.0",
    "gettext-extractor": "^4.0.1",
    "gettext-parser": "^8.0.0",
    "glob": "^12.0.0",
    "jsdom": "^27.2.0",
    "remark-gfm": "^4.0.1",
    "resolve-url-loader": "^5.0.0",
    "sass": "^1.94.1",
    "stylelint": "^16.25.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.9.3",
    "url-loader": "^4.1.1",
    "vite": "^7.2.2",
    "vitest": "^4.0.4",
    "vue-eslint-parser": "^10.2.0",
    "vue-material-design-icons": "^5.3.1",
    "vue-styleguidist": "^4.72.4",
    "vue-tsc": "^3.1.4",
    "webpack": "^5.102.1",
    "webpack-merge": "^6.0.1"
  },
  "engines": {
    "node": "^20.11.0 || ^22 || ^24"
  },
  "devEngines": {
    "packageManager": [
      {
        "name": "npm",
        "version": "^11.3.0",
        "onFail": "error"
      }
    ],
    "runtime": {
      "name": "node",
      "version": "^24",
      "onFail": "error"
    }
  }
}
  1. Run npm ci
  2. See error:
0 verbose cli /home/shgk/.volta/tools/image/node/24.11.1/bin/node /home/shgk/.volta/tools/image/npm/11.6.3/bin/npm-cli.js
1 info using npm@11.6.3
2 info using node@v24.11.1
3 silly config load:file:/home/shgk/.volta/tools/image/npm/11.6.3/npmrc
4 silly config load:file:/home/shgk/nextcloud/nextcloud-vue/.npmrc
5 silly config load:file:/home/shgk/.npmrc
6 silly config load:file:/home/shgk/.volta/tools/image/node/24.11.1/etc/npmrc
7 verbose title npm ci
8 verbose argv "ci"
9 verbose logfile logs-max:10 dir:/home/shgk/.npm/_logs/2025-11-20T10_57_24_409Z-
10 verbose logfile /home/shgk/.npm/_logs/2025-11-20T10_57_24_409Z-debug-0.log
11 silly logfile start cleaning logs, removing 1 files
12 silly logfile done cleaning log files
13 silly packumentCache heap:4496293888 maxSize:1124073472 maxEntrySize:562036736
14 silly Conflicting override sets <ref *1> OverrideSet {
14 silly Conflicting override sets   parent: undefined,
14 silly Conflicting override sets   children: Map(2) {
14 silly Conflicting override sets     '@playwright/experimental-ct-core' => OverrideSet {
14 silly Conflicting override sets       parent: [Circular *1],
14 silly Conflicting override sets       children: [Map],
14 silly Conflicting override sets       name: '@playwright/experimental-ct-core',
14 silly Conflicting override sets       key: '@playwright/experimental-ct-core',
14 silly Conflicting override sets       keySpec: '*',
14 silly Conflicting override sets       value: '*'
14 silly Conflicting override sets     },
14 silly Conflicting override sets     'mdast-util-gfm' => OverrideSet {
14 silly Conflicting override sets       parent: [Circular *1],
14 silly Conflicting override sets       children: [Map],
14 silly Conflicting override sets       name: 'mdast-util-gfm',
14 silly Conflicting override sets       key: 'mdast-util-gfm',
14 silly Conflicting override sets       keySpec: '*',
14 silly Conflicting override sets       value: '*'
14 silly Conflicting override sets     }
14 silly Conflicting override sets   }
14 silly Conflicting override sets } undefined
15 verbose stack TypeError: Cannot read properties of undefined (reading 'ruleset')
15 verbose stack     at OverrideSet.haveConflictingRules (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/override-set.js:220:32)
15 verbose stack     at OverrideSet.doOverrideSetsConflict (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/override-set.js:214:17)
15 verbose stack     at get error (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/edge.js:278:74)
15 verbose stack     at get valid (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/edge.js:251:18)
15 verbose stack     at visit (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:342:71)
15 verbose stack     at visitNode (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/treeverse/lib/depth-descent.js:58:25)
15 verbose stack     at next (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/treeverse/lib/depth-descent.js:44:19)
15 verbose stack     at depth (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/treeverse/lib/depth-descent.js:83:10)
15 verbose stack     at depth (/home/shgk/.volta/tools/image/npm/11.6.3/node_modules/treeverse/lib/depth.js:27:12)
15 verbose stack     at /home/shgk/.volta/tools/image/npm/11.6.3/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:330:9
16 error Cannot read properties of undefined (reading 'ruleset')
17 silly unfinished npm timer idealTree:init 1763636245159
18 verbose cwd /home/shgk/nextcloud/nextcloud-vue
19 verbose os Linux 6.12.11-200.fc41.x86_64
20 verbose node v24.11.1
21 verbose npm  v11.6.3
22 verbose exit 1
23 verbose code 1
24 error A complete log of this run can be found in: /home/shgk/.npm/_logs/2025-11-20T10_57_24_409Z-debug-0.log

Environment

  • npm: v11.6.3
  • Node.js: v24.11.1
  • OS Name: Fedora 39
  • System Model Name: Cloud server
  • npm config:

Metadata

Metadata

Assignees

Labels

Bugthing that needs fixingNeeds Triageneeds review for next steps

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions