slint-ui/slint · warning
[slint-ui] Ignoring slint-ui-dev ${devVersion}: it does not
Error message
[slint-ui] Ignoring slint-ui-dev ${devVersion}: it does not match slint-ui ${ownVersion}. Install slint-ui-dev@${ownVersion} to enable the development binary. What it means
The Node binding's loader enables the development binary only when slint-ui-dev's version exactly matches slint-ui, because the dev package's native code is paired with the JavaScript glue of that same release - mixing them would combine incompatible glue and native code. On mismatch it logs '[slint-ui] Ignoring slint-ui-dev <devVersion>: it does not match slint-ui <ownVersion> ...' and stays on the lean release binary, so system-testing/MCP features requested via SLINT_MCP_PORT/SLINT_TEST_SERVER remain unavailable.
Source
Thrown at api/node/binding.cjs:59
if (error && error.code !== "MODULE_NOT_FOUND") {
throw error;
}
}
// 2. The optional `slint-ui-dev` package, but only when MCP or system testing
// is requested (otherwise stay on the lean release binary). Its native
// binary is paired with a specific slint-ui version, so refuse to load it on
// a version mismatch: that would combine incompatible JavaScript glue and
// native code. The binary is loaded through the `slint-ui-dev/loader`
// subpath; the package entry point itself throws to catch direct imports.
const devRequested =
!!process.env.SLINT_MCP_PORT || !!process.env.SLINT_TEST_SERVER;
if (devRequested) {
try {
const devVersion = require("slint-ui-dev/package.json").version;
const ownVersion = require("./package.json").version;
if (devVersion !== ownVersion) {
console.warn(
`[slint-ui] Ignoring slint-ui-dev ${devVersion}: it does not match ` +
`slint-ui ${ownVersion}. Install slint-ui-dev@${ownVersion} to enable ` +
`the development binary.`,
);
} else {
return require("slint-ui-dev/loader");
}
} catch (error) {
// Not installed, or its native binary is unavailable on this platform.
if (error && error.code !== "MODULE_NOT_FOUND") {
console.warn(
`[slint-ui] Could not load slint-ui-dev: ${error.message}`,
);
}
}
}
// 3. Default release binary.View on GitHub (pinned to 3fd8f2ec03)
Solutions
- Install the exact same version of both: npm install --save-exact slint-ui@X.Y.Z slint-ui-dev@X.Y.Z.
- Verify with npm ls slint-ui slint-ui-dev that the versions line up.
- Pin both packages (no ^ ranges) in package.json so they cannot drift.
- If dev features are not needed in that run, unset SLINT_MCP_PORT/SLINT_TEST_SERVER and use the lean binary deliberately.
Example fix
# before: slint-ui@1.12.0 + slint-ui-dev@1.11.0 -> warning, dev binary ignored npm ls slint-ui slint-ui-dev # after: exact same version on both npm install --save-exact slint-ui@1.12.0 slint-ui-dev@1.12.0
Defensive patterns
Strategy: validation
Validate before calling
// Fail fast in test bootstrap when dev features are requested:
const own = require("slint-ui/package.json").version;
let dev: string | null = null;
try { dev = require("slint-ui-dev/package.json").version; } catch { /* not installed */ }
if (process.env.SLINT_MCP_PORT && dev !== own) {
throw new Error(`install slint-ui-dev@${own} to match slint-ui@${own}`);
} Prevention
- Pin exact versions of slint-ui and slint-ui-dev in package.json (--save-exact, no ^ ranges)
- Update the two packages as a pair, never individually
- Add the bootstrap version check above to CI so drift fails loudly
When it happens
Trigger: Running Node with SLINT_MCP_PORT or SLINT_TEST_SERVER set while the installed slint-ui and slint-ui-dev npm packages report different versions (one updated without the other, semver-range drift, or mismatched lockfile entries).
Common situations: npm update slint-ui without touching slint-dev/slint-ui-dev; using ^ ranges so the two packages drift apart; stale CI caches; installing slint-ui-dev from a branch against a released slint-ui.
Related errors
- Ignoring slint-dev {dev_version}: it does not match slint {o
- Duplicated property name ${globalName} (In JS: ${jsName})
- Duplicated property name ${propName} on global ${global}
- Duplicated property name ${cb} on global ${global}
- Duplicated function name ${cb} on global ${global}
AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19).
Data as JSON: /api/errors/c96167649619c88d.
Report an issue: GitHub.