{"record":{"id":"0e1ac44b06053550","repo":"Zackriya-Solutions/meetily","slug":"error","errorCode":null,"errorMessage":"{}: {}","messagePattern":"\\{\\}: \\{\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs","lineNumber":905,"sourceCode":"                                // Update model status to Missing so retry can work\n                                {\n                                    let mut models = self.available_models.write().await;\n                                    if let Some(model) = models.get_mut(model_name) {\n                                        model.status = ModelStatus::Missing;\n                                    }\n                                }\n\n                                let error_msg = if e.is_timeout() {\n                                    \"Connection timeout - Check your internet\"\n                                } else if e.is_connect() {\n                                    \"Connection failed - Check your internet\"\n                                } else if e.is_body() {\n                                    \"Stream interrupted - Network unstable\"\n                                } else {\n                                    \"Download error\"\n                                };\n\n                                return Err(anyhow!(\"{}: {}\", error_msg, e));\n                            }\n                        }\n                    }\n                };\n\n                if let Err(e) = writer.write_all(&chunk).await {\n                    // Remove from active downloads on error\n                    {\n                        let mut active = self.active_downloads.write().await;\n                        active.remove(model_name);\n                    }\n\n                    // Update model status to Missing so retry can work\n                    {\n                        let mut models = self.available_models.write().await;\n                        if let Some(model) = models.get_mut(model_name) {\n                            model.status = ModelStatus::Missing;\n                        }","sourceCodeStart":887,"sourceCodeEnd":923,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs#L887-L923","documentation":"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.","triggerScenarios":"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.","commonSituations":"CDN resetting long-lived connections during multi-GB model fetches; laptop sleep/resume mid-download; flaky Wi-Fi; antivirus MITM breaking TLS mid-transfer.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().starts_with(\"Connection timeout\")\n           || e.to_string().starts_with(\"Connection failed\")\n           || e.to_string().starts_with(\"Stream interrupted\") => retry_with_resume(), // partial file is kept\n    other => other,\n}","preventionTips":["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"],"tags":["network","download","http","rust"],"backgroundTag":"download-interrupted","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}