github/copilot-sdk · error
Unsupported Copilot CLI architecture
Error message
Unsupported Copilot CLI architecture: ${arch}. What it means
getRuntimePlatform maps process.platform/process.arch to a runtime platform triple and only supports x64 and arm64 architectures. Any other arch (e.g. arm, ppc64, s390x, 32-bit x86) is rejected with this error because no prebuilt Copilot CLI runtime exists for it.
Solutions
- Run under a 64-bit OS with an x64 or arm64 Node build.
- Use an officially supported machine/container image (linux/darwin/win32 on x64/arm64).
- If emulating, ensure Node reports x64 or arm64 (check process.arch).
- File/await an upstream request for prebuilt binaries on the target arch; there is no source-build fallback.
Example fix
// before $ node -p process.arch arm // after # install 64-bit OS and arm64 Node $ node -p process.arch arm64
Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED_ARCH = new Set(['x64', 'arm64']);
if (!SUPPORTED_ARCH.has(process.arch)) throw new Error(`unsupported arch: ${process.arch}`); Type guard
function isSupportedArch(arch: string): arch is 'x64' | 'arm64' { return arch === 'x64' || arch === 'arm64'; } Try / catch
try {
const platform = getRuntimePlatform();
} catch (e) {
if (e.message.startsWith('Unsupported Copilot CLI architecture')) {
// fail fast with a clear environment requirement message
} else throw e;
} Prevention
- Pin CI/dev containers to x64 or arm64 Node images.
- Check process.arch early at startup and surface a clear requirement.
- Avoid 32-bit Node builds for the SDK host process.
When it happens
Trigger: Running the SDK on hardware/Node builds whose process.arch is not 'x64' or 'arm64' — e.g. Raspberry Pi 32-bit (arm), IBM POWER (ppc64), z/OS mainframe (s390x), or ia32 Node.
Common situations: ARM 32-bit boards, Alpine on odd architectures, running x86 Node under emulation configs misreporting arch, corporate hardware not covered by prebuilt binaries.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- Unsupported Copilot CLI platform
- Unsupported os.arch: + osArch
- Unsupported architecture
- The in-process runtime connection is closed.
- Failed to write a frame to the in-process runtime…
AI-assisted analysis of github/copilot-sdk@cd8cf15dc3 (2026-09-09).
Data as JSON: /api/errors/90ed169949f0d9dc.
Report an issue: GitHub.
Appendix: source
Thrown at nodejs/src/runtimeArtifacts.ts:224
}
function isMusl(): boolean {
if (process.platform !== "linux") {
return false;
}
const report = process.report?.getReport() as
| { header?: { glibcVersionRuntime?: string } }
| undefined;
return report?.header?.glibcVersionRuntime === undefined;
}
export function getRuntimePlatform(
platform = process.platform,
arch = process.arch,
musl = isMusl()
): string {
if (arch !== "x64" && arch !== "arm64") {
throw new Error(`Unsupported Copilot CLI architecture: ${arch}.`);
}
if (platform === "linux") {
return `${musl ? "linuxmusl" : "linux"}-${arch}`;
}
if (platform === "darwin" || platform === "win32") {
return `${platform}-${arch}`;
}
throw new Error(`Unsupported Copilot CLI platform: ${platform}-${arch}.`);
}
export function getRuntimeReleaseAssetName(version: string, platform: string): string {
return `github-copilot-${version}-${platform}.tgz`;
}
export function getRuntimePackageName(platform: string): string {
return `@github/copilot-sdk-${platform}`;
}
View on GitHub (pinned to cd8cf15dc3)