Zackriya-Solutions/meetily · error
Generation failed: {}
Error message
Generation failed: {} What it means
The built-in AI sidecar (local inference process) accepted the request but returned a response payload whose error field is set: inference started and then failed. The message comes from the sidecar itself — typical causes are context length exceeded, model load failure, invalid sampling parameters, or out-of-memory during generation.
Source
Thrown at frontend/src-tauri/src/summary/summary_engine/client.rs:238
} else {
manager.send_request(request_json, timeout).await?
};
// Check cancellation before parsing response
if let Some(token) = cancellation_token {
if token.is_cancelled() {
return Err(anyhow!("Generation cancelled"));
}
}
// Parse response
let response: Response = serde_json::from_str(&response_json)
.with_context(|| format!("Failed to parse response: {}", response_json))?;
match response {
Response::Response { text, error } => {
if let Some(err_msg) = error {
Err(anyhow!("Generation failed: {}", err_msg))
} else {
log::info!("Generation completed: {} chars", text.len());
Ok(text)
}
}
Response::Error { message } => Err(anyhow!("Sidecar error: {}", message)),
}
}
/// Shutdown the global sidecar (graceful cleanup)
/// Detaches the current manager and spawns a background task to drain active requests
pub async fn shutdown_sidecar_gracefully() -> Result<()> {
let manager_opt = {
let mut global_manager = SIDECAR_MANAGER.lock().await;
global_manager.take()
};
if let Some(manager) = manager_opt {View on GitHub (pinned to 0281737d87)
Solutions
- Read the embedded sidecar message — it names the actual cause (context overflow, OOM, bad params)
- Truncate or chunk the transcript so prompt + output fits the model's context window
- Re-download the model if the sidecar reports a weight/format error
- Restart the app or call shutdown_sidecar_gracefully then retry to reset a wedged sidecar
Defensive patterns
Strategy: try-catch
Try / catch
match generate_builtin(...).await {
Err(e) if e.to_string().starts_with("Generation failed") => {
// e carries the sidecar's own message: context overflow / OOM / bad params
if e.to_string().contains("context") { truncate_prompt_and_retry() }
else { restart_sidecar_and_retry_once() }
}
other => other,
} Prevention
- Estimate token count before generation and chunk/truncate long transcripts
- Keep prompts well under the model's context window to leave room for output
- Watch sidecar logs when failures repeat — the embedded message is the real diagnosis
When it happens
Trigger: System prompt plus user prompt exceeding the model's context window; a corrupted or incompatible GGUF loaded by the sidecar; sampling parameters invalid for the model; the sidecar running out of memory mid-generation.
Common situations: Long meeting transcripts blowing past a small model's context; a model file that was resumed incorrectly after an interrupted download; low-RAM machines where mmap'd weights get evicted.
Related errors
- Sidecar error: {}
- Model file not found: {}. Please download the model '{}' fir
- Unknown model: {}
- Request timed out after {:?}
- Decode task join error: {}
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/7ff5e2c884381991.
Report an issue: GitHub.