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

  1. Use --x64 or --arm64, the only supported Desktop CLI architectures.
  2. Check the exact spelling/case of arch flags in npm scripts and CI matrices against SUPPORTED_CLI_ARCHS.
  3. 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

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


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/49d2cfaa0d1c3c93. Report an issue: GitHub.