What did I do
Attempted to build mqttx-web (the web/ subdirectory) using Node.js 22 LTS, which is the current Active LTS release.
yarn install --frozen-lockfile
What happened
Build fails immediately with an engine compatibility error:
error mqttx-web@1.13.0: The engine "node" is incompatible with this module. Expected version "18". Got "22.22.2"
error Found incompatible module.
The web/package.json has a strict engine constraint:
"engines": {
"node": "18"
}
Expected
This prevents installation on any Node.js version other than 18.x — including all currently supported LTS versions (20, 22, 24).
"engines": {
"node": ">=22"
}
Workaround: Using --ignore-engines flag works — the app builds and runs correctly on Node.js 22 LTS with no issues.
Environment
- Node.js 18 EOL: April 30, 2025 (over 11 months ago)
- Current LTS versions: Node.js 20 (EOL: April 2026), Node.js 22 (EOL: April 2027), Node.js 24 (EOL: April 2028)
- MQTTX version: v1.13.0
- Context: community-scripts/ProxmoxVED bare-metal installer for Proxmox — we install the latest Node.js LTS (currently 22 / but 24 is better) and build web/ from the tarball release
More detail
The strict "node": "18" constraint in web/package.json blocks installation on all currently supported Node.js versions. Since Node.js 18 reached End-of-Life on April 30, 2025, it no longer receives security patches.
The rest of the MQTTX project already uses "node": ">=18.18" in the root package.json — only web/package.json has this overly strict constraint.
The --openssl-legacy-provider flag is already set via cross-env NODE_OPTIONS=--openssl-legacy-provider in the build scripts, so OpenSSL compatibility is handled.
Suggested fix: Change web/package.json from "node": "18" to "node": ">=22".

What did I do
Attempted to build mqttx-web (the web/ subdirectory) using Node.js 22 LTS, which is the current Active LTS release.
What happened
Build fails immediately with an engine compatibility error:
The web/package.json has a strict engine constraint:
Expected
This prevents installation on any Node.js version other than 18.x — including all currently supported LTS versions (20, 22, 24).
Workaround: Using --ignore-engines flag works — the app builds and runs correctly on Node.js 22 LTS with no issues.
Environment
More detail
The strict "node": "18" constraint in web/package.json blocks installation on all currently supported Node.js versions. Since Node.js 18 reached End-of-Life on April 30, 2025, it no longer receives security patches.
The rest of the MQTTX project already uses "node": ">=18.18" in the root package.json — only web/package.json has this overly strict constraint.
The --openssl-legacy-provider flag is already set via cross-env NODE_OPTIONS=--openssl-legacy-provider in the build scripts, so OpenSSL compatibility is handled.
Suggested fix: Change web/package.json from "node": "18" to "node": ">=22".