slint-ui/slint · warning
[slint-ui] Ignoring slint-ui-dev
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
When SLINT_MCP_PORT or SLINT_TEST_SERVER is set, the slint-ui Node binding tries to load the optional slint-ui-dev package to enable the development (MCP/system-test capable) native binary. Because the dev binary is paired with an exact slint-ui version, a mismatched version is deliberately refused: this warning is printed and loading falls through to the default release binary.
Solutions
- Install the matching dev package: `npm install slint-ui-dev@<slint-ui version>` (the exact version is stated in the warning message).
- Rebuild slint-ui-dev from the same source tree/commit as the installed slint-ui package.
- Remove slint-ui-dev (`npm uninstall slint-ui-dev`) if you don't need MCP/testing, so the release binary loads cleanly.
- Pin slint-ui and slint-ui-dev to the same version in package.json / lockfile so they upgrade together.
Example fix
// before: package.json has mismatched versions
"dependencies": { "slint-ui": "1.9.0" },
"devDependencies": { "slint-ui-dev": "1.8.0" }
// after
"dependencies": { "slint-ui": "1.9.0" },
"devDependencies": { "slint-ui-dev": "1.9.0" } Defensive patterns
Strategy: validation
Validate before calling
const own = require('slint-ui/package.json').version;
let dev;
try { dev = require('slint-ui-dev/package.json').version; } catch { dev = null; }
if (dev && dev !== own) {
throw new Error(`slint-ui-dev@${dev} != slint-ui@${own}; run: npm install slint-ui-dev@${own}`);
} Prevention
- Pin slint-ui and slint-ui-dev to identical versions in package.json.
- After every slint-ui upgrade, reinstall/upgrade slint-ui-dev in the same change.
- Only set SLINT_MCP_PORT / SLINT_TEST_SERVER when a matching slint-ui-dev is actually installed.
- In CI, add a version-equality check step before enabling MCP testing.
When it happens
Trigger: Setting SLINT_MCP_PORT or SLINT_TEST_SERVER while an installed slint-ui-dev package's version (read from slint-ui-dev/package.json) differs from the slint-ui package's own version — typically after upgrading slint-ui without reinstalling slint-ui-dev (or vice versa).
Common situations: Running `npm update`/`pnpm update` that bumped slint-ui but left an old slint-ui-dev installed; installing a locally built slint-ui-dev built from a different commit than the slint-ui version in node_modules; CI environments caching slint-ui-dev across slint-ui version bumps.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- Could not load the slint-dev development binary
- [slint-ui] Could not load slint-ui-dev
- failed ( )
- Could not create a component handle for
- create
AI-assisted analysis of slint-ui/slint@bb937076de (2026-09-16).
Data as JSON: /api/errors/c96167649619c88d.
Report an issue: GitHub.
Appendix: 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 bb937076de)