Zackriya-Solutions/meetily · critical · anyhow::Error
llama-helper binary not found. Build with 'cd llama-helper &
Error message
llama-helper binary not found. Build with 'cd llama-helper && cargo build --release' or set MEETILY_LLAMA_HELPER env var.
What it means
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.
Source
Thrown at frontend/src-tauri/src/summary/summary_engine/sidecar.rs:257
.ok_or_else(|| anyhow!("Failed to determine project root"))?
.to_path_buf();
let candidates = vec![
project_root.join("target/release/llama-helper"),
project_root.join("target/debug/llama-helper"),
project_root.join("target/release/llama-helper.exe"),
project_root.join("target/debug/llama-helper.exe"),
];
for candidate in candidates {
if candidate.exists() {
log::info!("Using dev llama-helper: {}", candidate.display());
return Ok(candidate);
}
}
}
Err(anyhow!(
"llama-helper binary not found. Build with 'cd llama-helper && cargo build --release' or set MEETILY_LLAMA_HELPER env var."
))
}
/// Ensure sidecar is running, spawn if needed
pub async fn ensure_running(&self, model_path: PathBuf) -> Result<()> {
// Check if already running with correct model
{
let current_model = self.current_model_path.read().await;
if current_model.as_ref() == Some(&model_path) && self.is_healthy() {
log::debug!("Sidecar already running with correct model");
self.update_activity().await;
return Ok(());
}
}
// Need to spawn or restart
self.spawn(model_path).awaitView on GitHub (pinned to 0281737d87)
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
Defensive patterns
Strategy: validation
Validate before calling
// Startup gate before any summary feature is offered
let helper = find_helper_binary()?;
if !helper.exists() {
return Err(anyhow!("llama-helper missing at {:?} - run: cd llama-helper && cargo build --release", helper));
} Type guard
fn sidecar_available(path: &Path) -> bool {
path.is_file()
} Try / catch
try { LlamaHelper::new(model_path).await? }
catch (e) if e.to_string().contains("llama-helper binary not found") {
// disable local summaries, show setup instructions, keep remote providers (Claude/Groq) usable
disable_local_summary_with_setup_instructions();
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Failed to determine project root
- App state not available
- Generation failed: {}
- Sidecar error: {}
- Failed to get stdin
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/6c89d037d1b0690f.
Report an issue: GitHub.