{"record":{"id":"b76767290a6c6b9b","repo":"tinyhumansai/openhuman","slug":"failed-to-build-querit-http-client","errorCode":null,"errorMessage":"failed to build Querit HTTP client","messagePattern":"failed to build Querit HTTP client","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/search/tools/querit.rs","lineNumber":115,"sourceCode":"            max_results,\n            timeout_secs,\n        )\n    }\n\n    fn with_name(\n        tool_name: &'static str,\n        api_key: Option<String>,\n        api_url: Option<String>,\n        max_results: usize,\n        timeout_secs: u64,\n    ) -> Self {\n        let timeout = timeout_secs.max(1);\n        let http_client = crate::openhuman::util::tls::tls_client_builder()\n            .http1_only()\n            .timeout(Duration::from_secs(timeout))\n            .connect_timeout(Duration::from_secs(10))\n            .build()\n            .expect(\"failed to build Querit HTTP client\");\n\n        Self {\n            tool_name,\n            api_key,\n            api_url: api_url.unwrap_or_else(|| DEFAULT_API_URL.to_string()),\n            max_results: max_results.clamp(1, 20),\n            timeout_secs: timeout,\n            http_client,\n        }\n    }\n\n    fn render_results_plain(&self, results: &[QueritResultItem], query: &str) -> String {\n        if results.is_empty() {\n            return format!(\"No results found for: {}\", query);\n        }\n\n        let mut lines = vec![format!(\"Search results for: {} (via Querit)\", query)];\n        for (i, item) in results.iter().take(self.max_results).enumerate() {","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/search/tools/querit.rs#L97-L133","documentation":"Panic payload on the Querit search tool's one-shot client build in with_name(): tls_client_builder() (platform TLS) plus http1_only, request and 10s connect timeouts failed at build(). All inputs are constants or sanitized config, so this fires only on environment-level TLS/proxy failure; raised during tool construction, aborting the search tool.","triggerScenarios":"Thrown at src/openhuman/search/tools/querit.rs:115 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the platform TLS backend compiled in (util::tls selection)","Check proxy environment/configuration for malformed entries","Convert to Result-returning construction so the tool can be skipped instead of panicking"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}