{"record":{"id":"0aa61e77f33e0c73","repo":"dmtrKovalenko/fff","slug":"no-npm-package-available-for-platform-triple-0aa61e","errorCode":null,"errorMessage":"No npm package available for platform: ${triple}","messagePattern":"No npm package available for platform: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/fff-node/src/platform.ts","lineNumber":127,"sourceCode":"  \"aarch64-unknown-linux-gnu\": \"@ff-labs/fff-bin-linux-arm64-gnu\",\n  \"x86_64-unknown-linux-musl\": \"@ff-labs/fff-bin-linux-x64-musl\",\n  \"aarch64-unknown-linux-musl\": \"@ff-labs/fff-bin-linux-arm64-musl\",\n  \"x86_64-pc-windows-msvc\": \"@ff-labs/fff-bin-win32-x64\",\n  \"aarch64-pc-windows-msvc\": \"@ff-labs/fff-bin-win32-arm64\",\n  \"aarch64-linux-android\": \"@ff-labs/fff-bin-android-arm64\",\n};\n\n/**\n * Get the npm package name for the current platform's native binary.\n *\n * @returns Package name like \"@ff-labs/fff-bin-darwin-arm64\"\n * @throws If the current platform is not supported\n */\nexport function getNpmPackageName(): string {\n  const triple = getTriple();\n  const packageName = TRIPLE_TO_NPM_PACKAGE[triple];\n  if (!packageName) {\n    throw new Error(`No npm package available for platform: ${triple}`);\n  }\n  return packageName;\n}\n","sourceCodeStart":109,"sourceCodeEnd":131,"githubUrl":"https://github.com/dmtrKovalenko/fff/blob/7f8537e70f0ea1210f9acbbfc4640141105cdc78/packages/fff-node/src/platform.ts#L109-L131","documentation":"getNpmPackageName() in fff-node resolves the current triple and indexes TRIPLE_TO_NPM_PACKAGE; if the triple is valid but no @ff-labs/fff-bin-* package exists for it, it throws. This runs during binary download/install and platform resolution.","triggerScenarios":"Running the downloader on a triple without a published package: x86_64-android, armv7 android, windows-arm64 when that artifact is unpublished, or linux triples not in the gnu/musl x64/arm64 set.","commonSituations":"Android emulators (x86_64), 32-bit ARM SBCs, private registries lacking the platform artifacts, or CI targeting architectures the project does not release.","solutions":["Move to a published target (darwin x64/arm64, linux gnu/musl x64/arm64, win32 x64/arm64).","Build from source with `cargo build --release -p fff-c` to bypass npm binary packages.","Verify the platform package exists on your registry/mirror."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"import { getTriple } from 'fff-node/platform';\n// verify triple maps to a real package before download step\nconsole.assert(!!getNpmPackageNameSafe(), 'no package for ' + getTriple());","typeGuard":null,"tryCatchPattern":"try {\n  installPlatformPackage(getNpmPackageName());\n} catch (e) {\n  if (String(e.message).startsWith('No npm package available')) {\n    execSync('cargo build --release -p fff-c', { stdio: 'inherit' });\n  } else throw e;\n}","preventionTips":["Limit release/install targets to published platform packages.","Mirror the @ff-labs/fff-bin-* artifacts in private registries if needed.","Provide a source-build fallback for uncovered triples."],"tags":["platform","npm","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"}