{"record":{"id":"e06af6d20a17f154","repo":"cube-js/cube","slug":"request-to-url-failed-e","errorCode":null,"errorMessage":"request to {url} failed: {e}","messagePattern":"request to (.+?) failed: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"rust/cube-cli/src/client.rs","lineNumber":381,"sourceCode":"\n    /// POST a multipart form. `build_form` is called per attempt because a\n    /// form can only be sent once (the 401-refresh retry needs a fresh one).\n    pub async fn post_multipart<F>(&self, path: &str, build_form: F) -> Result<Value>\n    where\n        F: Fn() -> reqwest::multipart::Form,\n    {\n        let url = format!(\"{}{}\", self.base_url, path);\n        let send = |form: reqwest::multipart::Form, token: String| {\n            let http = &self.http;\n            let url = &url;\n            async move {\n                let res = http\n                    .post(url)\n                    .header(reqwest::header::AUTHORIZATION, Self::authorization(&token))\n                    .multipart(form)\n                    .send()\n                    .await\n                    .map_err(|e| anyhow!(\"request to {url} failed: {e}\"))?;\n                let status = res.status();\n                let text = res\n                    .text()\n                    .await\n                    .map_err(|e| anyhow!(\"reading the response from {url} failed: {e}\"))?;\n                Ok::<_, anyhow::Error>((status, text))\n            }\n        };\n\n        let (mut status, mut text) = send(build_form(), self.token()).await?;\n        if status == StatusCode::UNAUTHORIZED && self.try_refresh().await? {\n            let (s, t) = send(build_form(), self.token()).await?;\n            status = s;\n            text = t;\n        }\n        self.finish_response(&Method::POST, path, status, text)\n    }\n","sourceCodeStart":363,"sourceCodeEnd":399,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/rust/cube-cli/src/client.rs#L363-L399","documentation":"A reqwest send failure while POSTing a multipart form in the cube-cli HTTP client: the request to the composed URL never completed (DNS failure, connection refused, TLS error, timeout). This is the TransportError path — the server was not necessarily reached at all, distinguishing it from an HTTP error status.","triggerScenarios":"Thrown at rust/cube-cli/src/client.rs:381 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the base URL and network connectivity to the Cube endpoint","Check for proxy, DNS, or TLS configuration issues in the CLI environment","Retry the command — transient network failures often clear on their own"],"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"}