{"record":{"id":"a14c4ce2f76d36d9","repo":"ruvnet/ruflo","slug":"meta-proxy-has-no-published-release-for-platform","errorCode":null,"errorMessage":"meta-proxy has no published release for ${platform}/${arch}","messagePattern":"meta-proxy has no published release for (.+?)/(.+?)","errorType":"exception","errorClass":"UnsupportedPlatformError","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/proxy/release.ts","lineNumber":36,"sourceCode":"  'x86_64-unknown-linux-gnu',\n  'aarch64-unknown-linux-gnu',\n  'x86_64-pc-windows-msvc',\n] as const;\nexport type TargetTriple = (typeof TARGET_TRIPLES)[number];\n\nexport class UnsupportedPlatformError extends Error {\n  constructor(platform: string, arch: string) {\n    super(`meta-proxy has no published release for ${platform}/${arch}`);\n    this.name = 'UnsupportedPlatformError';\n  }\n}\n\n/** Maps the running Node process's platform/arch onto one of meta-proxy's 5 published triples. */\nexport function detectTargetTriple(platform: string = process.platform, arch: string = process.arch): TargetTriple {\n  if (platform === 'darwin') return arch === 'arm64' ? 'aarch64-apple-darwin' : 'x86_64-apple-darwin';\n  if (platform === 'linux') return arch === 'arm64' ? 'aarch64-unknown-linux-gnu' : 'x86_64-unknown-linux-gnu';\n  if (platform === 'win32') {\n    if (arch !== 'x64') throw new UnsupportedPlatformError(platform, arch);\n    return 'x86_64-pc-windows-msvc';\n  }\n  throw new UnsupportedPlatformError(platform, arch);\n}\n\nexport function releaseArchiveExtension(triple: TargetTriple): 'zip' | 'tar.gz' {\n  return triple.endsWith('windows-msvc') ? 'zip' : 'tar.gz';\n}\n\nexport function releaseAssetFilename(version: string, triple: TargetTriple): string {\n  return `meta-proxy-${version}-${triple}.${releaseArchiveExtension(triple)}`;\n}\n\nexport interface ReleaseAssets {\n  archiveBytes: Buffer;\n  archiveFilename: string;\n  sumsBytes: Buffer;\n  sigBase64: string;","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/proxy/release.ts#L18-L54","documentation":"detectTargetTriple() maps platform/arch onto meta-proxy's five published release triples. On Windows only x64 is supported; any other Windows architecture (arm64, ia32) throws UnsupportedPlatformError because no build is published for it. The error fires before any network activity — install aborts immediately.","triggerScenarios":"`ruflo proxy install` on win32 where process.arch !== 'x64' — native Windows ARM64 running an ARM64 Node build, or a 32-bit Node runtime.","commonSituations":"Windows-on-ARM devices running the ARM64 Node.js distribution; 32-bit Node installed by mistake; CI images using windows-arm64 runners.","solutions":["Install and run the x64 Node.js build on Windows (Windows 11 ARM emulates x64) and retry `ruflo proxy install`","Run under WSL2 (linux/x86_64 target) and install there","Track or request an aarch64-windows release upstream if native ARM support is required"],"exampleFix":"# before (ARM64 node)\nnode -p process.arch   # 'arm64' → install fails\n# after: install x64 Node, then\nnode -p process.arch   # 'x64'\nruflo proxy install","handlingStrategy":"validation","validationCode":"const supported =\n  (process.platform === 'win32' && process.arch === 'x64') ||\n  process.platform === 'darwin' ||\n  process.platform === 'linux';\nif (!supported) {\n  console.error(`no meta-proxy build for ${process.platform}/${process.arch}`);\n  process.exit(2);\n}","typeGuard":"const isUnsupportedPlatform = (e: unknown): e is Error & { name: 'UnsupportedPlatformError' } =>\n  e instanceof Error && e.name === 'UnsupportedPlatformError';","tryCatchPattern":"try {\n  await installProxy({ version });\n} catch (e) {\n  if (isUnsupportedPlatform(e)) {\n    console.error(e.message); // no fallback build exists — exit cleanly with guidance\n    process.exit(2);\n  }\n  throw e;\n}","preventionTips":["Print `node -p \"process.platform + '/' + process.arch\"` in environment onboarding docs","Standardize CI on x64 Windows or Linux runners","Pin per-platform Node distributions in setup scripts to avoid accidental ARM64 installs on Windows"],"tags":["platform-support","windows","arm64","proxy-install"],"backgroundTag":"unsupported-platform-arch","analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}