{"record":{"id":"6c0f099a07b793a2","repo":"libnyanpasu/clash-nyanpasu","slug":"all-mirrors-are-too-slow","errorCode":null,"errorMessage":"all mirrors are too slow","messagePattern":"all mirrors are too slow","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/tauri/src/core/updater/mod.rs","lineNumber":209,"sourceCode":"        let mirrors = crate::utils::candy::INTERNAL_MIRRORS;\n        let path = \"https://github.com/libnyanpasu/clash-nyanpasu/raw/main/manifest/version.json\";\n        let client = crate::utils::candy::get_reqwest_client()?;\n        let results = client.mirror_speed_test(mirrors, path).await?;\n        let (fastest_mirror, speed) = results.first().ok_or(anyhow!(\"no mirrors found\"))?;\n        if speed - 1.0 < 0.0001 {\n            anyhow::bail!(\"all mirrors are too slow\");\n        }\n        tracing::debug!(\"fastest mirror: {}, speed: {}\", fastest_mirror, speed);","sourceCodeStart":191,"sourceCodeEnd":227,"githubUrl":"https://github.com/libnyanpasu/clash-nyanpasu/blob/f7dbce2997c633e484f54788035e770b3ee99773/backend/tauri/src/core/updater/mod.rs#L191-L227","documentation":"mirror_speed_test benchmarks INTERNAL_MIRRORS against the manifest URL and, after picking the fastest result, bails when the best measured speed minus 1.0 is below 0.0001 — i.e. every mirror's measured speed is at the ~1.0 floor, meaning no mirror responded usefully. The cached mirror selection is left untouched (or unset), so subsequent manifest fetches have no viable mirror.","triggerScenarios":"Thrown at backend/tauri/src/core/updater/mod.rs:209 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check overall network connectivity; all mirrors failing usually means the machine is offline or behind a blocking proxy/firewall.","Retry later — mirror outages (e.g. GitHub raw blocked or CDN issues) are often temporary.","Configure a working proxy/VPN so the internal mirrors become reachable.","Clear the cached mirror timestamp to force a fresh speed test once connectivity is restored."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f7dbce2997c633e484f54788035e770b3ee99773","analyzedAt":"2026-09-08T01:24:59.197Z","contentChangedAt":"2026-09-08T01:24:59.197Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}