Zackriya-Solutions/meetily · error
{}: {}
Error message
{}: {} What it means
A chunk from reqwest's bytes_stream returned Err. The engine classifies the error into one of four user-facing categories — connection timeout, connection failed, stream interrupted (body error), or generic download error — and formats 'category: underlying error'. The writer is flushed first, so the partially downloaded file survives for resume.
Source
Thrown at frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs:905
// Update model status to Missing so retry can work
{
let mut models = self.available_models.write().await;
if let Some(model) = models.get_mut(model_name) {
model.status = ModelStatus::Missing;
}
}
let error_msg = if e.is_timeout() {
"Connection timeout - Check your internet"
} else if e.is_connect() {
"Connection failed - Check your internet"
} else if e.is_body() {
"Stream interrupted - Network unstable"
} else {
"Download error"
};
return Err(anyhow!("{}: {}", error_msg, e));
}
}
}
};
if let Err(e) = writer.write_all(&chunk).await {
// Remove from active downloads on error
{
let mut active = self.active_downloads.write().await;
active.remove(model_name);
}
// Update model status to Missing so retry can work
{
let mut models = self.available_models.write().await;
if let Some(model) = models.get_mut(model_name) {
model.status = ModelStatus::Missing;
}View on GitHub (pinned to 0281737d87)
Solutions
- Retry with resume — the partial file is kept and the next attempt sends a Range header from the flushed offset
- If the category is connect/timeout, verify general internet connectivity before retrying
- For repeated TLS/proxy errors, test the URL with curl and disable VPN/AV interception for that host
- Download one model at a time to avoid CDN connection resets
Defensive patterns
Strategy: retry
Try / catch
match result {
Err(e) if e.to_string().starts_with("Connection timeout")
|| e.to_string().starts_with("Connection failed")
|| e.to_string().starts_with("Stream interrupted") => retry_with_resume(), // partial file is kept
other => other,
} Prevention
- Always retry from the preserved partial file (Range header) rather than restarting
- Avoid triggering CDN resets by limiting concurrent downloads
- Prefer wired/stable networks for multi-GB model fetches; pause downloads on network change events
When it happens
Trigger: Connection reset by the peer mid-body; TLS error during streaming; DNS failure or connect error at request start; HTTP/2 GOAWAY; any reqwest error surfaced by stream.next() after send() succeeded.
Common situations: CDN resetting long-lived connections during multi-GB model fetches; laptop sleep/resume mid-download; flaky Wi-Fi; antivirus MITM breaking TLS mid-transfer.
Related errors
- Download failed with status: {}
- Download timeout - No data received for 30 seconds
- Failed to start download: {}
- Download failed with status: {}
- Download timeout - No data received for 30 seconds
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/0e1ac44b06053550.
Report an issue: GitHub.