Skip to content

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

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:
Details
{
  "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:
Details
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

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