{"record":{"id":"7d869a100a9aa7f2","repo":"parcel-bundler/parcel","slug":"unsupported-architecture-on-freebsd-arch","errorCode":null,"errorMessage":"Unsupported architecture on FreeBSD: ${arch}","messagePattern":"Unsupported architecture on FreeBSD: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"packages/core/rust/index.js","lineNumber":164,"sourceCode":"          join(__dirname, 'parcel-node-bindings.darwin-arm64.node'),\n        );\n        try {\n          if (localFileExisted) {\n            nativeBinding = require('./parcel-node-bindings.darwin-arm64.node');\n          } else {\n            nativeBinding = require('@parcel/rust-darwin-arm64');\n          }\n        } catch (e) {\n          loadError = e;\n        }\n        break;\n      default:\n        throw new Error(`Unsupported architecture on macOS: ${arch}`);\n    }\n    break;\n  case 'freebsd':\n    if (arch !== 'x64') {\n      throw new Error(`Unsupported architecture on FreeBSD: ${arch}`);\n    }\n    localFileExisted = existsSync(\n      join(__dirname, 'parcel-node-bindings.freebsd-x64.node'),\n    );\n    try {\n      if (localFileExisted) {\n        nativeBinding = require('./parcel-node-bindings.freebsd-x64.node');\n      } else {\n        nativeBinding = require('@parcel/rust-freebsd-x64');\n      }\n    } catch (e) {\n      loadError = e;\n    }\n    break;\n  case 'linux':\n    switch (arch) {\n      case 'x64':\n        if (isMusl()) {","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/parcel-bundler/parcel/blob/59484858a1a0bcbb71f74088956bb437a2db6505/packages/core/rust/index.js#L146-L182","documentation":"Thrown by @parcel/rust's binding loader on FreeBSD when process.arch is not 'x64'. FreeBSD is only supported on x86-64; the loader explicitly checks `arch !== 'x64'` before attempting to require the freebsd-x64 binding and rejects all other arches.","triggerScenarios":"Running Parcel on FreeBSD with a non-x64 architecture (e.g. arm64, riscv64, i386) where no prebuilt parcel-node-bindings.freebsd-x64.node is applicable.","commonSituations":"Running on FreeBSD ARM64 servers or single-board devices; using i386 FreeBSD jails; community FreeBSD ports on Tier-2 architectures.","solutions":["Run Parcel on FreeBSD/amd64 (x64) — confirm `node -p process.arch` returns 'x64'.","Move the build to a Linux x64 host where prebuilt coverage is broader.","Build the Rust binding from source on your FreeBSD arch if the toolchain supports it.","Use a Docker/jail environment with FreeBSD x64."],"exampleFix":"# before: FreeBSD/arm64\n$ node -p process.arch\n'arm64'  # error\n\n# after: FreeBSD/amd64\n$ node -p process.arch\n'x64'","handlingStrategy":"validation","validationCode":"import { platform, arch } from 'process';\nif (platform === 'freebsd' && arch !== 'x64') {\n  throw new Error(`FreeBSD requires x64; detected ${arch}.`);\n}","typeGuard":"function isSupportedFreeBSDArch(a: string): boolean {\n  return a === 'x64';\n}","tryCatchPattern":null,"preventionTips":["Run Parcel on FreeBSD/amd64 only.","For other FreeBSD arches, build the binding from source.","Prefer a Linux x64 container for broadest prebuilt coverage."],"tags":["native-binding","freebsd","architecture","parcel-rust"],"backgroundTag":null,"analyzedSha":"59484858a1a0bcbb71f74088956bb437a2db6505","analyzedAt":"2026-08-13T04:06:35.925Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}