{"record":{"id":"bff5f171342370fa","repo":"zed-industries/zed","slug":"running-on-unsupported-architecture-other","errorCode":null,"errorMessage":"Running on unsupported architecture: {other}","messagePattern":"Running on unsupported architecture: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/node_runtime/src/node_runtime.rs","lineNumber":632,"sourceCode":"    #[cfg(not(windows))]\n    const NPM_PATH: &str = \"bin/npm\";\n    #[cfg(windows)]\n    const NPM_PATH: &str = \"node_modules/npm/bin/npm-cli.js\";\n\n    async fn install_if_needed(http: &Arc<dyn HttpClient>) -> Result<Self> {\n        log::info!(\"Node runtime install_if_needed\");\n\n        let os = match consts::OS {\n            \"macos\" => \"darwin\",\n            \"linux\" => \"linux\",\n            \"windows\" => \"win\",\n            other => bail!(\"Running on unsupported os: {other}\"),\n        };\n\n        let arch = match consts::ARCH {\n            \"x86_64\" => \"x64\",\n            \"aarch64\" => \"arm64\",\n            other => bail!(\"Running on unsupported architecture: {other}\"),\n        };\n\n        let version = Self::VERSION;\n        let folder_name = format!(\"node-{version}-{os}-{arch}\");\n        let node_containing_dir = paths::data_dir().join(\"node\");\n        let node_dir = node_containing_dir.join(folder_name);\n        let node_binary = node_dir.join(Self::NODE_PATH);\n        let npm_file = node_dir.join(Self::NPM_PATH);\n        let node_ca_certs = env::var(NODE_CA_CERTS_ENV_VAR).unwrap_or_else(|_| String::new());\n\n        let valid = if fs::metadata(&node_binary).await.is_ok() {\n            let result = util::command::new_command(&node_binary)\n                .env(NODE_CA_CERTS_ENV_VAR, node_ca_certs)\n                .arg(npm_file)\n                .arg(\"--version\")\n                .args([\"--cache\".into(), node_dir.join(\"cache\")])\n                .args([\"--userconfig\".into(), node_dir.join(\"blank_user_npmrc\")])\n                .args([\"--globalconfig\".into(), node_dir.join(\"blank_global_npmrc\")])","sourceCodeStart":614,"sourceCodeEnd":650,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/node_runtime/src/node_runtime.rs#L614-L650","documentation":"Companion to the OS check: install_if_needed maps std::env::consts::ARCH onto Node dist names (x86_64→x64, aarch64→arm64). Any other architecture — 32-bit arm, riscv64, loongarch64, x86 (i686) — hits the `other` arm and bails before any download.","triggerScenarios":"Running Zed's node_runtime installer on a CPU other than 64-bit x86 or 64-bit ARM: armv7l/arm (32-bit), riscv64gc, i686, powerpc64.","commonSituations":"Attempting builds on SBCs (32-bit ARM), emerging architectures, or Docker images with non-standard qemu emulated arches.","solutions":["Run on an x86_64 or aarch64 host","When porting, add the architecture mapping plus the matching Node dist archive name","Use a system-provided Node runtime path instead of the bundled installer"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"fn arch_supported() -> bool {\n    matches!(std::env::consts::ARCH, \"x86_64\" | \"aarch64\")\n}","typeGuard":"#[cfg(not(any(target_arch = \"x86_64\", target_arch = \"aarch64\")))]\ncompile_error!(\"bundled node runtime requires x86_64 or aarch64\");","tryCatchPattern":"if !arch_supported() {\n    return SystemNodeRuntime::discover().await; // skip bundled installer\n}\nNodeRuntime::install_if_needed(&http).await?;","preventionTips":["Check consts::ARCH before entering the download path","Build-gate unsupported architectures in port projects","Document platform support next to runtime configuration"],"tags":["node-runtime","platform","architecture","install"],"backgroundTag":"unsupported-cpu-architecture","analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}