{"record":{"id":"06551b85b43114e8","repo":"nikivdev/code","slug":"unsupported-linux-architecture","errorCode":null,"errorMessage":"Unsupported Linux architecture","messagePattern":"Unsupported Linux architecture","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/upgrade.rs","lineNumber":155,"sourceCode":"/// Detect the current platform (os, arch).\nfn detect_release_target() -> Result<&'static str> {\n    if cfg!(target_os = \"macos\") {\n        if cfg!(target_arch = \"x86_64\") {\n            return Ok(\"x86_64-apple-darwin\");\n        }\n        if cfg!(target_arch = \"aarch64\") {\n            return Ok(\"aarch64-apple-darwin\");\n        }\n        bail!(\"Unsupported macOS architecture\");\n    }\n    if cfg!(target_os = \"linux\") {\n        if cfg!(target_arch = \"x86_64\") {\n            return Ok(\"x86_64-unknown-linux-gnu\");\n        }\n        if cfg!(target_arch = \"aarch64\") {\n            return Ok(\"aarch64-unknown-linux-gnu\");\n        }\n        bail!(\"Unsupported Linux architecture\");\n    }\n\n    bail!(\"Unsupported operating system for self-upgrade (only macOS/Linux supported)\");\n}\n\nfn detect_legacy_platform() -> Result<(&'static str, &'static str)> {\n    let os = if cfg!(target_os = \"macos\") {\n        \"darwin\"\n    } else if cfg!(target_os = \"linux\") {\n        \"linux\"\n    } else {\n        bail!(\"Unsupported operating system for self-upgrade (only macOS/Linux supported)\");\n    };\n\n    let arch = if cfg!(target_arch = \"aarch64\") {\n        \"arm64\"\n    } else if cfg!(target_arch = \"x86_64\") {\n        \"amd64\"","sourceCodeStart":137,"sourceCodeEnd":173,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/upgrade.rs#L137-L173","documentation":"Raised by `detect_release_target` when running on Linux but the compiled architecture is neither x86_64 nor aarch64; the updater cannot map the platform to a published release artifact (x86_64-unknown-linux-gnu / aarch64-unknown-linux-gnu).","triggerScenarios":"Self-upgrade (`run`) on Linux with a build targeting arm 32-bit, riscv, powerpc, musl/non-glibc variant arches, etc.","commonSituations":"Running on Raspberry Pi (32-bit arm), embedded boards, or niche architectures; alpine/musl builds expecting a different artifact triple.","solutions":["Install a build made for x86_64-unknown-linux-gnu or aarch64-unknown-linux-gnu.","On 64-bit capable hardware (e.g. newer Raspberry Pi), switch to a 64-bit OS so target_arch is aarch64.","Perform manual updates (download releases yourself) instead of self-upgrade."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"fn is_supported_linux_arch() -> bool {\n    matches!(std::env::consts::ARCH, \"x86_64\" | \"aarch64\")\n}\nif !is_supported_linux_arch() {\n    eprintln!(\"self-upgrade unsupported on this Linux arch; update manually\");\n    return;\n}","typeGuard":null,"tryCatchPattern":"match detect_release_target() {\n    Ok(target) => { /* download target asset */ }\n    Err(e) if e.to_string().contains(\"Unsupported Linux\") => {\n        eprintln!(\"build/install x86_64 or aarch64 Linux binary instead\");\n    }\n    Err(e) => return Err(e),\n}","preventionTips":["Check `uname -m` (should be x86_64 or aarch64) before self-upgrading.","On Raspberry Pi, run a 64-bit OS to get aarch64.","Use gnu-target (not musl) official assets, or update manually otherwise.","Document supported platform matrix for your users."],"tags":["linux","architecture","upgrade"],"backgroundTag":"unsupported-architecture","analyzedSha":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}