{"record":{"id":"cce474ec5d9edf81","repo":"dmtrKovalenko/fff","slug":"unsupported-architecture-arch-cce474","errorCode":null,"errorMessage":"Unsupported architecture: ${arch}","messagePattern":"Unsupported architecture: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/fff-node/src/platform.ts","lineNumber":66,"sourceCode":"    return \"unknown-linux-musl\";\n  }\n  return \"unknown-linux-gnu\";\n}\n\n/**\n * Normalize architecture name to Rust target format\n */\nfunction normalizeArch(arch: string): string {\n  switch (arch) {\n    case \"x64\":\n    case \"amd64\":\n      return \"x86_64\";\n    case \"arm64\":\n      return \"aarch64\";\n    case \"arm\":\n      return \"arm\";\n    default:\n      throw new Error(`Unsupported architecture: ${arch}`);\n  }\n}\n\n/**\n * Get the library file extension for the current platform\n */\nexport function getLibExtension(): \"dylib\" | \"so\" | \"dll\" {\n  switch (process.platform) {\n    case \"darwin\":\n      return \"dylib\";\n    case \"win32\":\n      return \"dll\";\n    default:\n      return \"so\";\n  }\n}\n\n/**","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/dmtrKovalenko/fff/blob/7f8537e70f0ea1210f9acbbfc4640141105cdc78/packages/fff-node/src/platform.ts#L48-L84","documentation":"fff-node's normalizeArch() maps process.arch to a Rust target arch and accepts only x64/amd64, arm64, and arm. Other process.arch values abort triple construction, blocking library-path and npm-package resolution.","triggerScenarios":"Calling getTriple() on machines where process.arch is ia32, mips/mipsel, ppc64, s390x, riscv64, or loong64, or with a bogus mocked arch in tests.","commonSituations":"32-bit Node installs, s390x/ppc64 Linux servers, RISC-V dev boards, qemu-emulated CI runners reporting uncommon arches.","solutions":["Use a supported architecture (x86_64, aarch64, or arm).","Install the 64-bit x64 or arm64 Node build instead of ia32 on 64-bit hardware.","Build the native library from source for exotic arches and place it where findBinary() looks.","Fix test mocks to set process.arch to 'x64' or 'arm64'."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!['x64','amd64','arm64','arm'].includes(process.arch)) throw new Error(`unsupported arch ${process.arch}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Deploy only on x86_64/aarch64/arm machines.","Use 64-bit Node builds.","Emulate supported arches in CI rather than native exotic ones."],"tags":["architecture","unsupported-platform","node"],"backgroundTag":"unsupported-platform","analyzedSha":"7f8537e70f0ea1210f9acbbfc4640141105cdc78","analyzedAt":"2026-09-10T07:26:53.407Z","contentChangedAt":"2026-09-10T07:26:53.407Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}