{"record":{"id":"27a0849823682ab5","repo":"cube-js/cube","slug":"request-to-failed","errorCode":null,"errorMessage":"request to {} failed: {}","messagePattern":"request to (.+?) failed: (.+?)","errorType":"exception","errorClass":"TransportError","httpStatus":null,"severity":"error","filePath":"rust/cube-cli/src/client.rs","lineNumber":333,"sourceCode":"        );\n        if !query.is_empty() {\n            req = req.query(query);\n        }\n        if let Some(body) = body {\n            req = req.json(body);\n        } else if matches!(\n            *method,\n            Method::POST | Method::PUT | Method::PATCH | Method::DELETE\n        ) {\n            // Bodyless writes still need an explicit Content-Length: 0, otherwise\n            // some frontends (e.g. Google GFE) reject them with 411 Length\n            // Required. reqwest omits the header for an empty body, so set it.\n            req = req\n                .header(reqwest::header::CONTENT_LENGTH, \"0\")\n                .body(Vec::<u8>::new());\n        }\n        let res = req.send().await.map_err(|e| {\n            anyhow::Error::new(TransportError {\n                url: url.clone(),\n                source: e.to_string(),\n            })\n        })?;\n        let status = res.status();\n        // Preserve the status even if the response body drops mid-read: callers use it\n        // for 404 handling, transient retries, and one-shot refresh after a 401.\n        let text = res.text().await.unwrap_or_default();\n        Ok((status, text))\n    }\n\n    pub async fn request(\n        &self,\n        method: Method,\n        path: &str,\n        query: &Query,\n        body: Option<&Value>,\n    ) -> Result<Value> {","sourceCodeStart":315,"sourceCodeEnd":351,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/rust/cube-cli/src/client.rs#L315-L351","documentation":"The generic TransportError of the cube-cli HTTP client: the underlying reqwest send for the HTTP request failed before a response was received (connection refused, DNS failure, timeout, TLS problem). The {} placeholders carry the method/URL and the reqwest error chain. Note the CLI already sets Content-Length: 0 for bodyless writes to avoid spurious 411s, so this error points at connectivity rather than framing.","triggerScenarios":"Thrown at rust/cube-cli/src/client.rs:333 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the target URL is correct and the server is reachable","Check DNS resolution, proxies, VPN, and TLS settings in the CLI environment","Retry — transient network errors are a common cause"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}