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

  1. Install the exact same version of both: npm install --save-exact slint-ui@X.Y.Z slint-ui-dev@X.Y.Z.
  2. Verify with npm ls slint-ui slint-ui-dev that the versions line up.
  3. Pin both packages (no ^ ranges) in package.json so they cannot drift.
  4. 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

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


AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19). Data as JSON: /api/errors/c96167649619c88d. Report an issue: GitHub.