{"record":{"id":"6c89d037d1b0690f","repo":"Zackriya-Solutions/meetily","slug":"llama-helper-binary-not-found-build-with-cd-llam","errorCode":null,"errorMessage":"llama-helper binary not found. Build with 'cd llama-helper && cargo build --release' or set MEETILY_LLAMA_HELPER env var.","messagePattern":"llama-helper binary not found\\. Build with 'cd llama-helper && cargo build --release' or set MEETILY_LLAMA_HELPER env var\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"critical","filePath":"frontend/src-tauri/src/summary/summary_engine/sidecar.rs","lineNumber":257,"sourceCode":"                .ok_or_else(|| anyhow!(\"Failed to determine project root\"))?\n                .to_path_buf();\n\n            let candidates = vec![\n                project_root.join(\"target/release/llama-helper\"),\n                project_root.join(\"target/debug/llama-helper\"),\n                project_root.join(\"target/release/llama-helper.exe\"),\n                project_root.join(\"target/debug/llama-helper.exe\"),\n            ];\n\n            for candidate in candidates {\n                if candidate.exists() {\n                    log::info!(\"Using dev llama-helper: {}\", candidate.display());\n                    return Ok(candidate);\n                }\n            }\n        }\n\n        Err(anyhow!(\n            \"llama-helper binary not found. Build with 'cd llama-helper && cargo build --release' or set MEETILY_LLAMA_HELPER env var.\"\n        ))\n    }\n\n    /// Ensure sidecar is running, spawn if needed\n    pub async fn ensure_running(&self, model_path: PathBuf) -> Result<()> {\n        // Check if already running with correct model\n        {\n            let current_model = self.current_model_path.read().await;\n            if current_model.as_ref() == Some(&model_path) && self.is_healthy() {\n                log::debug!(\"Sidecar already running with correct model\");\n                self.update_activity().await;\n                return Ok(());\n            }\n        }\n\n        // Need to spawn or restart\n        self.spawn(model_path).await","sourceCodeStart":239,"sourceCodeEnd":275,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/summary/summary_engine/sidecar.rs#L239-L275","documentation":"The summary engine could not locate the llama-helper sidecar binary anywhere: not at MEETILY_LLAMA_HELPER, not under RESOURCE_DIR (bundled resources), and not at target/{release,debug}/llama-helper[.exe] derived from the workspace root. Local summary generation is impossible until the binary exists.","triggerScenarios":"Fresh dev checkout where the llama-helper crate was never built; a production package that did not bundle the helper as a Tauri resource; platform suffix mismatch (binary named llama-helper.exe looked for without .exe, or vice versa); the app bundle moved away from its resources directory.","commonSituations":"First run after clone (building only the app crate does not build the helper unless the workspace is configured), CI/release pipelines missing the sidecar in tauri resources, running the packaged binary standalone without its resource layout.","solutions":["Build it: cd llama-helper && cargo build --release, then restart so dev path detection finds target/release/llama-helper","Or set MEETILY_LLAMA_HELPER=/absolute/path/to/llama-helper pointing at an existing binary","For packaged builds, declare llama-helper in tauri.conf.json externalBin/resources so the RESOURCE_DIR lookup succeeds","Check the binary name matches the platform (llama-helper vs llama-helper.exe) and the executable bit is set on Unix"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Startup gate before any summary feature is offered\nlet helper = find_helper_binary()?;\nif !helper.exists() {\n    return Err(anyhow!(\"llama-helper missing at {:?} - run: cd llama-helper && cargo build --release\", helper));\n}","typeGuard":"fn sidecar_available(path: &Path) -> bool {\n    path.is_file()\n}","tryCatchPattern":"try { LlamaHelper::new(model_path).await? }\ncatch (e) if e.to_string().contains(\"llama-helper binary not found\") {\n    // disable local summaries, show setup instructions, keep remote providers (Claude/Groq) usable\n    disable_local_summary_with_setup_instructions();\n}","preventionTips":["Build llama-helper as part of the workspace default-members so a plain cargo build produces it","Add the helper to tauri.conf.json resources/externalBin and assert its presence in packaging tests","On startup, probe for the binary and degrade gracefully (offer remote LLM providers) instead of failing at first summary"],"tags":["sidecar","build","llama-helper","setup","missing-binary"],"backgroundTag":"missing-sidecar-binary","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}