n8n-io/n8n · error · Error

Local computer-use build not found at ${LOCAL_COMPUTER_USE_C

Error message

Local computer-use build not found at ${LOCAL_COMPUTER_USE_CLI}.
Build it first:
  pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build

Or pass --use-published-daemon to spawn the released package via npx instead.

What it means

Thrown by `ensureDaemon()` when autoStart is true, `usePublishedDaemon` is false (the default), and the local workspace build of `@n8n/computer-use` is missing at the resolved path `packages/@n8n/computer-use/dist/cli.js`. The runner prefers the local build so in-progress changes to `@n8n/computer-use` and its workspace deps (`@n8n/mcp-browser`) are picked up; the error tells you to either build it or fall back to the published npm package.

Source

Thrown at packages/@n8n/instance-ai/evaluations/computer-use/daemon.ts:83

		logger.verbose(`[daemon] already paired, dir=${status.directory}`);
		// Auto-connect (N8N_EVAL_AUTO_BROWSER_CONNECT=1) is set on the daemon's
		// own process env at spawn-time, so it only takes effect when the eval
		// runner started the daemon. A pre-existing daemon won't have it.
		logger.warn(
			'Reusing existing computer-use daemon. If it was not started by this eval runner, ' +
				'browser auto-connect may be inactive — you may need to click Connect in the ' +
				'extension manually when the browser session resets between scenarios.',
		);
		return toInfo(status);
	}

	if (!opts.autoStart) {
		throw new Error(noDaemonHint(opts.baseUrl));
	}

	const usePublished = opts.usePublishedDaemon ?? false;
	if (!usePublished && !existsSync(LOCAL_COMPUTER_USE_CLI)) {
		throw new Error(
			`Local computer-use build not found at ${LOCAL_COMPUTER_USE_CLI}.\n` +
				'Build it first:\n' +
				'  pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build\n' +
				'\n' +
				'Or pass --use-published-daemon to spawn the released package via npx instead.',
		);
	}

	const sandboxDir = opts.daemonSandboxDir ?? join(opts.evalOutputDir, 'daemon-sandbox');
	await mkdir(sandboxDir, { recursive: true });

	const logPath = join(opts.evalOutputDir, 'daemon.log');
	const { token } = await client.createGatewayLink();

	logger.info(
		`Daemon not running — auto-starting (${usePublished ? 'published via npx' : 'local workspace build'}, sandbox: ${sandboxDir})`,
	);
	const pid = await spawnDaemonDetached({

View on GitHub (pinned to 5ac6606e81)

Solutions

  1. Build the local packages: `pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build`, then re-run the eval.
  2. If you want to test the released artifact instead (e.g. reproducing a customer bug against the shipped version), pass `--use-published-daemon` to spawn `@n8n/computer-use` via npx.
  3. If the build keeps failing, check `packages/@n8n/computer-use/package.json` and its tsconfig; a compile error there will prevent `dist/cli.js` from being emitted.

Example fix

// before
$ node cli.ts --base-url http://localhost:5678
# Error: Local computer-use build not found at .../dist/cli.js

// after (option A)
$ pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build
$ node cli.ts --base-url http://localhost:5678

// after (option B)
$ node cli.ts --base-url http://localhost:5678 --use-published-daemon
Defensive patterns

Strategy: validation

Validate before calling

import { existsSync } from 'node:fs';
const LOCAL = resolve(__dirname, '../../../../../packages/@n8n/computer-use/dist/cli.js');
if (!usePublishedDaemon && !existsSync(LOCAL)) {
  throw new Error(`Build missing — run: pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build`);
}

Prevention

When it happens

Trigger: Fresh checkout where `pnpm install` ran but `pnpm build` (or `pnpm --filter @n8n/computer-use --filter @n8n/mcp-browser build`) has not. A `pnpm reset`/`git clean -fdx` that wiped `dist/`. Switching branches where `@n8n/computer-use` was added/removed. A failed partial build that produced some packages' `dist/` but not this one.

Common situations: First run of the computer-use eval suite on a new machine. After `pnpm reset --full`. In CI if the build step was skipped or cached as a miss without re-running.

Related errors


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/adb856a5b8b3c612. Report an issue: GitHub.