Hi all,
A heads-up on a flaky build / CI issue that has been hitting Theia on Node.js 24 over the past few days. It started as sporadic build/test failures but escalated to consistently hanging / failing CI runs across multiple workflows, so we landed a set of mitigations.
What was happeningElectron's postinstall (and other consumers of
extract-zip@2.0.1) sporadically dropped files on Node 24 runners, causing build and test failures. Root cause is in
extract-zip's stream handling; tracked upstream in
https://github.com/electron/electron/issues/51619.
What we merged (PR
#17575)
- Bumped
puppeteer /
puppeteer-core to 25.1.0, which drops
extract-zip from the Puppeteer dependency chain.
- Added a
yauzl@^3.3.1 npm
override in the monorepo root as suggested in the upstream issue.
We plan to ship this in a patch release for Theia today (1.72.1).
What this means for adopters-
@theia/cli's
puppeteer-core moves from 23.1.0 to 25.1.0 (major). The only API change in our usage path is a TypeScript type rename:
puppeteer.PuppeteerLaunchOptions to
puppeteer.LaunchOptions. Runtime behavior is unchanged.
- If your own product hits the same race on Node 24, add
"yauzl": "^3.3.1" to your
overrides (npm) or
resolutions (yarn). Our root-level override does not propagate to your dependency tree.
Note for open Theia PRsIf your PR was opened before #17575 landed, please rebase onto master to pick up the CI fixes. Without the rebase your runs are likely to keep hitting the same problems.
We're tracking the upstream Electron fix in
GH-17570 and will retire the override once a fixed Electron is available.
Best regards,
Nina