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

  1. Install the matching dev package: `npm install slint-ui-dev@<slint-ui version>` (the exact version is stated in the warning message).
  2. Rebuild slint-ui-dev from the same source tree/commit as the installed slint-ui package.
  3. Remove slint-ui-dev (`npm uninstall slint-ui-dev`) if you don't need MCP/testing, so the release binary loads cleanly.
  4. 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

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


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)