chroma-core/chroma · critical

Unsupported Windows architecture: ${process.arch}. Only ARM6

Error message

Unsupported Windows architecture: ${process.arch}. Only ARM64 is supported.

What it means

Thrown at module load time by the chromadb package's bindings loader on Windows when process.arch is not arm64. Only a Windows ARM64 (msvc) prebuilt Rust binding is published, so x64 Windows — the most common Windows setup — cannot load native bindings from this package. The error fires during import, before any application code runs.

Source

Thrown at clients/js/packages/chromadb/src/bindings.ts:26

    binding = require("chromadb-js-bindings-darwin-arm64");
  } else if (process.arch === "x64") {
    binding = require("chromadb-js-bindings-darwin-x64");
  } else {
    throw new Error(`Unsupported architecture on macOS: ${process.arch}`);
  }
} else if (process.platform === "linux") {
  if (process.arch === "arm64") {
    binding = require("chromadb-js-bindings-linux-arm64-gnu");
  } else if (process.arch === "x64") {
    binding = require("chromadb-js-bindings-linux-x64-gnu");
  } else {
    throw new Error(`Unsupported architecture on Linux: ${process.arch}`);
  }
} else if (process.platform === "win32") {
  if (process.arch === "arm64") {
    binding = require("chromadb-js-bindings-win32-arm64-msvc");
  } else {
    throw new Error(
      `Unsupported Windows architecture: ${process.arch}. Only ARM64 is supported.`,
    );
  }
} else {
  throw new Error(`Unsupported platform: ${process.platform}`);
}

export default binding;

View on GitHub (pinned to aecdd12c8a)

Solutions

  1. Use the pure-JS client packages (chromadb-core, chromadb-cloud, or chromadb-client) which have no native binding requirement.
  2. Run inside WSL2 (Linux x64) where the linux-x64-gnu binding loads.
  3. Run tests/builds on Windows ARM64 hardware, or switch CI to a Linux runner for this package.
Defensive patterns

Strategy: fallback

Validate before calling

const isWinArm64 = process.platform === "win32" && process.arch === "arm64";
// On Windows x64 fall back to the pure-JS client
const mod = isWinArm64
  ? await import("chromadb")
  : await import("chromadb-core");

Prevention

When it happens

Trigger: import "chromadb" on 64-bit x64 Windows, 32-bit ia32 Windows, or any Windows Node build that is not arm64.

Common situations: Developers on standard Intel/AMD Windows machines or Windows x64 CI runners (e.g. GitHub Actions windows-latest) importing the native-bindings chromadb package; teams that develop on Mac/Linux and first see the crash on Windows build agents.

Related errors


AI-assisted analysis of chroma-core/chroma@aecdd12c8a (2026-08-16). Data as JSON: /api/errors/e8bf91ec765359bb. Report an issue: GitHub.