multica-ai/multica · warning
[package] unsupported Desktop CLI architecture(s): ${unsuppo
Error message
[package] unsupported Desktop CLI architecture(s): ${unsupported.join(", ")}. Use --x64 or --arm64. What it means
Thrown by resolveBuildMatrix when any requested arch is not in SUPPORTED_CLI_ARCHS (currently {x64, arm64}). The requested archs come from CLI flags normalized by hostArchKey, so this fires for misspelled/unsupported values like --ia32, --armv7l, or a typo such as --x86_64. The message lists all offending values and points to the supported flags.
Source
Thrown at apps/desktop/scripts/package.mjs:291
throw new Error(
`[package] --all-platforms is only supported on macOS hosts (current: ${platform})`,
);
}
return MAC_ALL_PLATFORM_TARGETS.map((target) => ({ ...target }));
}
const platforms =
parsed.requestedPlatforms.length > 0
? parsed.requestedPlatforms
: [hostPlatformKey(platform)];
const archs =
parsed.requestedArchs.length > 0
? parsed.requestedArchs
: [hostArchKey(arch)];
const unsupported = archs.filter((value) => !SUPPORTED_CLI_ARCHS.has(value));
if (unsupported.length > 0) {
throw new Error(
`[package] unsupported Desktop CLI architecture(s): ${unsupported.join(", ")}. ` +
"Use --x64 or --arm64.",
);
}
return platforms.flatMap((targetPlatform) =>
archs.map((targetArch) => ({
platform: targetPlatform,
arch: targetArch,
})),
);
}
function formatTarget(target) {
return `${PLATFORM_CONFIG[target.platform].label} ${target.arch}`;
}
export function builderArgsForTarget(View on GitHub (pinned to 2c0912b6ec)
Solutions
- Use --x64 or --arm64, the only supported Desktop CLI architectures.
- Check the exact spelling/case of arch flags in npm scripts and CI matrices against SUPPORTED_CLI_ARCHS.
- If you genuinely need another arch, extend SUPPORTED_CLI_ARCHS and the CLI build tooling together — the check exists because the toolchain cannot produce other arches.
Example fix
# before node apps/desktop/scripts/package.mjs --ia32 # after node apps/desktop/scripts/package.mjs --x64
Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = new Set(["x64", "arm64"]);
const bad = requestedArchs.filter((a) => !SUPPORTED.has(a));
if (bad.length) {
console.error(`unsupported arch(s): ${bad.join(", ")}; use --x64 or --arm64`);
process.exit(2);
} Type guard
function isSupportedArch(a: string): boolean {
return a === "x64" || a === "arm64";
} Prevention
- Validate arch flags at the npm-script level before invoking package.mjs.
- Keep CI matrices limited to x64/arm64 unless SUPPORTED_CLI_ARCHS is extended in lockstep with tooling.
When it happens
Trigger: Passing `--ia32`, `--arm`, or any arch key outside x64/arm64 to package.mjs; hostArchKey mapping an unusual process.arch (e.g. a non-standard Node build) to a value not in the set; scripts hardcoding an arch string with the wrong casing.
Common situations: Porting packaging scripts from another project that supported 32-bit builds; CI matrices with stale arch names; newer/edge Node builds reporting uncommon process.arch values.
Related errors
- [package] --all-platforms cannot be combined with explicit p
- [package] --all-platforms is only supported on macOS hosts (
- scan dry-run summary: %w
- read migration %q: %w
- gzip reader: %w
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/49d2cfaa0d1c3c93.
Report an issue: GitHub.