{"record":{"id":"a698ae0aaa3907c4","repo":"sinelaw/fresh","slug":"this-build-was-compiled-without-self-update-support-download","errorCode":null,"errorMessage":"this build was compiled without self-update support; download the latest release from https://github.com/sinelaw/fresh/releases","messagePattern":"this build was compiled without self-update support; download the latest release from https://github\\.com/sinelaw/fresh/releases","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/fresh-editor/src/main.rs","lineNumber":5047,"sourceCode":"        //                        printed what the user has to do, so add\n        //                        nothing here\n        //   - Err             -> clean one-line \"Error: <msg>\", exit 1\n        use fresh_update::engine::UpdateStatus;\n        match fresh_update::engine::run(fresh::services::release_checker::CURRENT_VERSION, &opts) {\n            Ok(UpdateStatus::Done) => Ok(()),\n            Ok(UpdateStatus::ActionRequired) => {\n                std::process::exit(fresh_update::EXIT_ACTION_REQUIRED)\n            }\n            Err(e) => {\n                eprintln!(\"Error: {e}\");\n                std::process::exit(1);\n            }\n        }\n    }\n    #[cfg(not(feature = \"self-update\"))]\n    {\n        let _ = args;\n        anyhow::bail!(\n            \"this build was compiled without self-update support; \\\n             download the latest release from https://github.com/sinelaw/fresh/releases\"\n        );\n    }\n}\n\nfn dump_config_command(args: &Args) -> AnyhowResult<()> {\n    let dir_context = fresh::config_io::DirectoryContext::from_system()?;\n    let working_dir = std::env::current_dir().unwrap_or_default();\n    let config = if let Some(config_path) = &args.config {\n        config::Config::load_from_file(config_path)\n            .with_context(|| format!(\"Failed to load config from {}\", config_path.display()))?\n    } else {\n        config::Config::load_with_layers(&dir_context, &working_dir)\n    };\n    println!(\n        \"{}\",\n        serde_json::to_string_pretty(&config).context(\"Failed to serialize config\")?","sourceCodeStart":5029,"sourceCodeEnd":5065,"githubUrl":"https://github.com/sinelaw/fresh/blob/67894ca5463dbd7a89bb31add4627c27d6b79d83/crates/fresh-editor/src/main.rs#L5029-L5065","documentation":"The editor was invoked with the self-update command but the binary was compiled without the `self-update` cargo feature, so the update path is unimplemented. main.rs:5047 bails early in the `#[cfg(not(feature = \"self-update\"))]` branch instead of attempting an update. The message directs users to download a prebuilt release manually.","triggerScenarios":"Running `fresh --update` (or equivalent self-update CLI args, passed via `args`) on a binary built without `--features self-update`, e.g. a distro package or a default `cargo build`.","commonSituations":"Installing via a package manager that strips the feature; building from source with plain `cargo build --release`; CI artifacts compiled without the feature; users expecting the update subcommand to exist because the released binaries have it.","solutions":["Download and install the latest release manually from https://github.com/sinelaw/fresh/releases","Rebuild from source with the feature enabled: `cargo build --release --features self-update`","Update via the original installation channel (package manager, cargo install, etc.) instead of the in-app updater"],"exampleFix":"// before\ncargo build --release\nfresh --update  // this build was compiled without self-update support\n// after\ncargo build --release --features self-update\nfresh --update  // works","handlingStrategy":"fallback","validationCode":"let self_update_enabled = cfg!(feature = \"self-update\");\nif !self_update_enabled {\n    eprintln!(\"self-update unavailable; install from https://github.com/sinelaw/fresh/releases\");\n}","typeGuard":null,"tryCatchPattern":"match fresh.update() {\n    Err(e) if e.to_string().contains(\"without self-update support\") => download_release_manually(),\n    other => other?,\n}","preventionTips":["Check whether the binary supports self-update (docs/`--help`) before invoking the update command","Prefer package-manager or installer-based updates when installed via a distro package","When building from source, remember to pass --features self-update if you want the updater"],"tags":["build-configuration","cli","feature-flags","rust"],"backgroundTag":"feature-not-enabled","analyzedSha":"67894ca5463dbd7a89bb31add4627c27d6b79d83","analyzedAt":"2026-09-13T15:04:03.701Z","contentChangedAt":"2026-09-13T15:04:03.701Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}