Page MenuHomePhabricator

"Cannot find module '@typescript-eslint/eslint-plugin'" on mediawiki-node24
Open, HighPublic

Description

Same as T430413: timeline mediawiki-node24 failure on REL1_45, but for multiple other repos on MW-1.44-release and MW-1.45-release

https://integration.wikimedia.org/ci/job/mediawiki-node24/41154/console

15:44:30 + exec docker run --volume /srv/jenkins/workspace/mediawiki-node24/src:/src --volume /srv/jenkins/workspace/mediawiki-node24/cache:/cache --volume /srv/jenkins/workspace/mediawiki-node24/log:/log --security-opt seccomp=unconfined --init --rm --label jenkins.job=mediawiki-node24 --label jenkins.build=41154 --env-file /dev/fd/63 docker-registry.wikimedia.org/releng/node24-test:24.18.0
15:44:30 ++ set +x
15:44:30 + set +x
15:44:30 + node --version
15:44:30 v24.18.0
15:44:30 + npm --version
15:44:30 11.16.0
15:44:30 + '[' -e package-lock.json ']'
15:44:30 + npm ci
15:44:33 npm warn deprecated glob@7.1.7: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
15:44:33 npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
15:44:33 npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
15:44:35 npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
15:44:35 
15:44:35 added 340 packages, and audited 341 packages in 5s
15:44:35 
15:44:35 81 packages are looking for funding
15:44:35   run `npm fund` for details
15:44:35 
15:44:35 3 moderate severity vulnerabilities
15:44:35 
15:44:35 To address all issues (including breaking changes), run:
15:44:35   npm audit fix --force
15:44:35 
15:44:35 Run `npm audit` for details.
15:44:36 + npm run-script test
15:44:36 
15:44:36 > test
15:44:36 > grunt test
15:44:36 
15:44:36 Running "eslint:all" (eslint) task
15:44:37 Warning: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.json » eslint-config-wikimedia#overrides[2] » ./typescript': Cannot find module '@typescript-eslint/eslint-plugin'
15:44:37 Require stack:
15:44:37 - /src/__placeholder__.js
15:44:37 Referenced from: /src/node_modules/eslint-config-wikimedia/typescript.js Use --force to continue.

This is starting to feel like a wider spread issue... :(

Event Timeline

Reedy triaged this task as High priority.Jun 29 2026, 2:13 PM

I saw the same issue on Friday when backporting OAuth patches: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/OAuth/+/1305781/comments/337b7a7e_f425dc8c (I thought it only affected that repo)

There was a weird CI failure on this branch:

Running "eslint:all" (eslint) task
Warning: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.json » eslint-config-wikimedia/server » ./common#overrides[2] » ./typescript': Cannot find module '@typescript-eslint/eslint-plugin'
Require stack:
- /src/__placeholder__.js
Referenced from: /src/node_modules/eslint-config-wikimedia/typescript.js Use --force to continue.

I don't know why that happens, but this fixes it. We use eslint-config-wikimedia 0.32.3 on the REL1_46 branch.

In that case updating eslint-config-wikimedia to 0.32.3 fixed it. I don't know what actually caused it. (It could be just a buggy package, but I also wondered if it's a CI problem similar to T429824 somehow.)

I wonder if we could run LibUp to bump eslint-config-wikimedia for all extensions on all release branches?

Change #1307272 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/UrlShortener@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307272

Change #1307273 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/UrlShortener@REL1_44] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307273

Change #1307274 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/UrlShortener@REL1_43] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307274

Change #1307272 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307272

Change #1307273 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@REL1_44] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307273

Change #1307274 merged by Krinkle:

[mediawiki/extensions/UrlShortener@REL1_43] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1307274

Change #1309298 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):

[mediawiki/extensions/CentralAuth@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1309298

Change #1309298 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1309298

Change #1316938 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):

[mediawiki/extensions/TemplateSandbox@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1316938

Change #1316938 merged by jenkins-bot:

[mediawiki/extensions/TemplateSandbox@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1316938

Change #1318160 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/WikimediaCampaignEvents@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1318160

Change #1318160 merged by jenkins-bot:

[mediawiki/extensions/WikimediaCampaignEvents@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1318160

Change #1319501 had a related patch set uploaded (by TheDJ; author: TheDJ):

[mediawiki/extensions/TimedMediaHandler@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1319501

Change #1319501 merged by jenkins-bot:

[mediawiki/extensions/TimedMediaHandler@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1319501

I don't understand why the libup-config change hasn't resulted in any automatic dependency updates, as far as I can see. Does someone need to kick it off manually?

Per https://libraryupgrader.toolforge.org/status?branch=REL1_45 none of the four canary repos have upgraded yet; I think non-master branches go every week.

The last runs for the four repos on REL1_45 are:

So, theoretically, this should generally get "fixed" (i.e. there'll be loads of LibUp patches for us to manually merge in REL1_45) this coming weekend.

Change #1279508 had a related patch set uploaded (by Krinkle; author: Libraryupgrader):

[VisualEditor/VisualEditor@REL1_45] build: Updating npm dependencies

https://gerrit.wikimedia.org/r/1279508

Change #1279508 merged by jenkins-bot:

[VisualEditor/VisualEditor@REL1_45] build: Updating npm dependencies

https://gerrit.wikimedia.org/r/1279508

Change #1279504 had a related patch set uploaded (by Krinkle; author: Libraryupgrader):

[VisualEditor/VisualEditor@REL1_43] build: Updating npm dependencies

https://gerrit.wikimedia.org/r/1279504

Change #1279504 merged by jenkins-bot:

[VisualEditor/VisualEditor@REL1_43] build: Updating npm dependencies

https://gerrit.wikimedia.org/r/1279504

Per https://libraryupgrader.toolforge.org/status?branch=REL1_45 none of the four canary repos have upgraded yet; I think non-master branches go every week.

Current status: "100% of 4 canaries and 2% of all 770 repositories have been updated."

Change #1336249 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):

[mediawiki/extensions/WikibaseCirrusSearch@REL1_45] Unbreak CI

https://gerrit.wikimedia.org/r/1336249

Change #1336256 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):

[mediawiki/extensions/CirrusSearch@REL1_45] build: Unbreak typescript-eslint plugin in CI

https://gerrit.wikimedia.org/r/1336256

Per https://libraryupgrader.toolforge.org/status?branch=REL1_45 none of the four canary repos have upgraded yet; I think non-master branches go every week.

Current status: "100% of 4 canaries and 2% of all 770 repositories have been updated."

Looks like it's finally making some progress now:

100% of 4 canaries and 22% of all 769 repositories have been updated.

Change #1336249 abandoned by SomeRandomDeveloper:

[mediawiki/extensions/WikibaseCirrusSearch@REL1_45] Unbreak CI

Reason:

Done in 1316939

https://gerrit.wikimedia.org/r/1336249

Change #1336256 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@REL1_45] Unbreak CI

https://gerrit.wikimedia.org/r/1336256

Current status:

100% of 4 canaries and 88% of all 770 repositories have been updated.

I think it might be stuck here for a while, possibly forever (until we retire 1.45). The remaining repositories have other build failures and seem to be poorly maintained. There are about 80 other repos with problems.

For example, I just resolved the build failure blocking this in the Josa extension, which was reported back in August (T434272).

The MediaSearch extension seems to have something else causing a very similar "Cannot find module '@typescript-eslint/eslint-plugin'" error (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/MediaSearch/+/1304199). I haven't investigated it.