JuliusBrussee/caveman · error · Error
no prebuilt binary for ${os}/${arch} — supported: darwin/arm
Error message
no prebuilt binary for ${os}/${arch} — supported: darwin/arm64, darwin/amd64, linux/arm64, linux/amd64, win32/arm64, win32/amd64 What it means
Error "no prebuilt binary for ${os}/${arch} — supported: darwin/arm64, darwin/amd64, linux/arm64, linux/amd64, win32/arm64, win32/amd64" thrown in JuliusBrussee/caveman.
Source
Thrown at packages/cli/src/index.ts:1983
const INSTALL_BINARIES = GO_BINARIES.map((binary) => binary.name);
function setupTimeoutSeconds(): number {
const raw = process.env.CAVE_SETUP_TIMEOUT ?? "300";
const parsed = Number(raw);
if (!Number.isInteger(parsed) || parsed <= 0) {
throw new Error(`CAVE_SETUP_TIMEOUT must be a positive integer (got ${JSON.stringify(raw)})`);
}
return parsed;
}
export function setupPlatform(
os: NodeJS.Platform = process.platform,
nodeArch: string = process.arch,
): { os: string; arch: string } {
const arch = nodeArch === "x64" ? "amd64" : nodeArch;
if (!(os === "darwin" || os === "linux" || os === "win32") ||
!(arch === "arm64" || arch === "amd64")) {
throw new Error(OFF_STATES.unsupportedPlatform(os, arch).line);
}
return { os, arch };
}
export function binaryInstallFilename(name: string, os: string = process.platform): string {
return os === "win32" ? `${name}.exe` : name;
}
function binaryInstallManifestPath(): string {
return join(cavemanHome(), "bin", ".bin-manifest.json");
}
function sha256File(path: string): string | null {
try {
return createHash("sha256").update(readFileSync(path)).digest("hex");
} catch {
return null;
}View on GitHub (pinned to 27d5a3981a)
Solutions
- Use a supported platform (darwin/linux/win32 on arm64/amd64) or build the binary from source.
When it happens
Trigger: Thrown at packages/cli/src/index.ts:1983 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/08b564f41d0abc92.
Report an issue: GitHub.