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
- Use the pure-JS client packages (chromadb-core, chromadb-cloud, or chromadb-client) which have no native binding requirement.
- Run inside WSL2 (Linux x64) where the linux-x64-gnu binding loads.
- 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
- On Windows x64 use chromadb-core/chromadb-cloud or run under WSL2.
- Set CI to linux runners for pipelines that exercise native bindings.
- Document platform support matrices in onboarding docs to avoid Windows x64 imports.
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
- Unsupported architecture on macOS: ${process.arch}
- Unsupported architecture on Linux: ${process.arch}
- Unsupported platform: ${process.platform}
- Unsupported platform: ${platform}
AI-assisted analysis of chroma-core/chroma@aecdd12c8a (2026-08-16).
Data as JSON: /api/errors/e8bf91ec765359bb.
Report an issue: GitHub.