GoogleChrome/lighthouse · error · Error

Launching Chrome on Mac Silicon (arm64) from an x64 Node ins

Error message

Launching Chrome on Mac Silicon (arm64) from an x64 Node installation results in Rosetta translating the Chrome binary, even if Chrome is already arm64. This would result in huge performance issues. To resolve this, you must run Lighthouse CLI with a version of Node built for arm64. You should also confirm that your Chrome install says arm64 in chrome://version

What it means

On macOS, Lighthouse detects when the Node.js process is an x64 build running on Apple Silicon (arm64) hardware. In this configuration, macOS's Rosetta 2 translates the Chrome binary, causing severe performance measurement corruption even if Chrome itself is arm64. Lighthouse proactively refuses to launch rather than produce misleading metrics. The detection checks process.platform === 'darwin', process.arch === 'x64', and whether the CPU model string contains 'Apple'.

Source

Thrown at cli/run.js:76

        if (parsed[key] === true) return `--${key}`;
        // ChromeLauncher passes flags to Chrome as atomic arguments, so do not double quote
        // i.e. `lighthouse --chrome-flags="--user-agent='My Agent'"` becomes `chrome "--user-agent=My Agent"`
        // see https://github.com/GoogleChrome/lighthouse/issues/3744
        return `--${key}=${parsed[key]}`;
      });
}

/**
 * Attempts to connect to an instance of Chrome with an open remote-debugging
 * port. If none is found, launches a debuggable instance.
 * @param {LH.CliFlags} flags
 * @return {Promise<ChromeLauncher.LaunchedChrome>}
 */
function getDebuggableChrome(flags) {
  if (process.platform === 'darwin' && process.arch === 'x64') {
    const cpus = os.cpus();
    if (cpus[0].model.includes('Apple')) {
      throw new Error(
        'Launching Chrome on Mac Silicon (arm64) from an x64 Node installation results in ' +
        'Rosetta translating the Chrome binary, even if Chrome is already arm64. This would ' +
        'result in huge performance issues. To resolve this, you must run Lighthouse CLI with ' +
        'a version of Node built for arm64. You should also confirm that your Chrome install ' +
        'says arm64 in chrome://version');
    }
  }

  return ChromeLauncher.launch({
    port: flags.port,
    ignoreDefaultFlags: flags.chromeIgnoreDefaultFlags,
    chromeFlags: parseChromeFlags(flags.chromeFlags),
    logLevel: flags.logLevel,
  });
}

/** @return {never} */
function printConnectionErrorAndExit() {

View on GitHub (pinned to 9515cd4e58)

Solutions

  1. Install an arm64-native Node.js build: use nvm to install an arm64 version, or download from nodejs.org choosing the arm64 Darwin installer
  2. Verify your Node architecture: node -p "process.arch" should print 'arm64', not 'x64'
  3. If using nvm: arch -arm64 zsh && nvm install --arch=arm64 lts/iron
  4. Verify Chrome is also arm64 by checking chrome://version for 'arm64' in the platform line
  5. Alternatively, run Lighthouse in a Docker container with an x64 image on an x64 host (avoids Rosetta entirely)

Example fix

# before: node -p "process.arch" prints 'x64'
# fix with nvm:
arch -arm64 zsh
nvm install --arch=arm64 20
nvm use 20
node -p "process.arch"  # should print 'arm64'
lighthouse https://example.com
Defensive patterns

Strategy: validation

Validate before calling

// Check for the Apple Silicon + x64 Node mismatch before running Lighthouse
const os = require('os');
function checkPlatformCompatibility() {
  if (process.platform === 'darwin' && process.arch === 'x64') {
    const cpus = os.cpus();
    if (cpus[0]?.model?.includes('Apple')) {
      console.error('ERROR: x64 Node on Apple Silicon. Install arm64 Node: nvm install --arch=arm64 lts/iron');
      process.exit(1);
    }
  }
}

Prevention

When it happens

Trigger: Running the Lighthouse CLI on an Apple Silicon Mac (M1/M2/M3/M4) where the Node.js binary is an x64 (Intel) build running under Rosetta. The check fires at Chrome launch time in getDebuggableChrome before any audit work begins.

Common situations: Installing Node via a version manager (nvm, homebrew) that provided the Intel x64 build on an Apple Silicon machine; CI runners or Docker containers using x64 Node images on arm64 hosts; corporate IT-provided Node installations that default to x64.

Related errors


AI-assisted analysis of GoogleChrome/lighthouse@9515cd4e58 (2026-08-13). Data as JSON: /api/errors/61474dfcf8da11cc. Report an issue: GitHub.