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

  1. Read the embedded sidecar message — it names the actual cause (context overflow, OOM, bad params)
  2. Truncate or chunk the transcript so prompt + output fits the model's context window
  3. Re-download the model if the sidecar reports a weight/format error
  4. 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

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


AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16). Data as JSON: /api/errors/7ff5e2c884381991. Report an issue: GitHub.