{"record":{"id":"7a36a97bca399a15","repo":"databendlabs/databend","slug":"https-should-be-true-or-false-parse-error-wit","errorCode":null,"errorMessage":"HTTPS should be `TRUE` or `FALSE`, parse error with: {:?}","messagePattern":"HTTPS should be `TRUE` or `FALSE`, parse error with: (.+?)","errorType":"exception","errorClass":"InvalidInput","httpStatus":null,"severity":"error","filePath":"src/query/sql/src/planner/binder/location.rs","lineNumber":415,"sourceCode":"        root,\n        network_config: None,\n    });\n    l.connection\n        .check()\n        .map_err(|err| Error::new(ErrorKind::InvalidInput, err.to_string()))?;\n    Ok(sp)\n}\n\n// The FileSystem scheme of WebHDFS is “webhdfs://”. A WebHDFS FileSystem URI has the following format.\n// webhdfs://<HOST>:<HTTP_PORT>/<PATH>\nfn parse_webhdfs_params(l: &mut UriLocation, root: String) -> Result<StorageParams> {\n    let is_https = l\n        .connection\n        .get(\"https\")\n        .map(|s| s.to_lowercase().parse::<bool>())\n        .unwrap_or(Ok(true))\n        .map_err(|e| {\n            Error::new(\n                ErrorKind::InvalidInput,\n                format!(\n                    \"HTTPS should be `TRUE` or `FALSE`, parse error with: {:?}\",\n                    e,\n                ),\n            )\n        })?;\n    let prefix = if is_https { \"https\" } else { \"http\" };\n    let endpoint_url = format!(\"{prefix}://{}\", l.name);\n\n    let delegation = l.connection.get(\"delegation\").cloned().unwrap_or_default();\n    let disable_list_batch = l\n        .connection\n        .get(\"disable_list_batch\")\n        .map(|v| v.to_lowercase().parse::<bool>())\n        .unwrap_or(Ok(true))\n        .map_err(|e| {\n            Error::new(","sourceCodeStart":397,"sourceCodeEnd":433,"githubUrl":"https://github.com/databendlabs/databend/blob/288d84d76e20a2f8f7173bda9691eb6ece301aa9/src/query/sql/src/planner/binder/location.rs#L397-L433","documentation":"For webhdfs:// locations, the 'https' connection option is parsed as a Rust bool via to_lowercase().parse::<bool>(). Only case-insensitive 'true'/'false' are accepted (default is true when absent); any other string produces this InvalidInput error wrapping the ParseBoolError.","triggerScenarios":"CONNECTION = (https = 'yes') or (https = '1') or (https = 'on') on a webhdfs:// stage/COPY location.","commonSituations":"Users writing 'True' is fine (lowercased) but 'yes'/'no' or '1'/'0' is not; config templates ported from tools that accept truthy strings; quoting mistakes leaving stray spaces.","solutions":["Change the value to 'true' or 'false' (any letter case is accepted).","Remove the option entirely to use the default (HTTPS enabled).","Check for stray whitespace or non-ASCII characters inside the quoted value."],"exampleFix":"// before\nCONNECTION = (https = 'yes');\n// after\nCONNECTION = (https = 'false');","handlingStrategy":"validation","validationCode":"// Rust\nfn is_valid_bool_opt(v: &str) -> bool { matches!(v.to_lowercase().as_str(), \"true\" | \"false\") }\n// check before submitting: https option must satisfy is_valid_bool_opt","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only 'true' or 'false' for boolean connection options.","Never use 1/0, yes/no, or on/off.","Trim whitespace from config values before quoting them in SQL."],"tags":["storage","webhdfs","boolean-parsing","config-validation"],"backgroundTag":"invalid-config-value","analyzedSha":"288d84d76e20a2f8f7173bda9691eb6ece301aa9","analyzedAt":"2026-09-11T11:29:36.208Z","contentChangedAt":"2026-09-11T11:29:36.208Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}