{"record":{"id":"de2666b76e202380","repo":"databendlabs/databend","slug":"disable-list-batch-should-be-true-or-false-pa","errorCode":null,"errorMessage":"disable_list_batch should be `TRUE` or `FALSE`, parse error with: {:?}","messagePattern":"disable_list_batch 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":433,"sourceCode":"            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(\n                ErrorKind::InvalidInput,\n                format!(\n                    \"disable_list_batch should be `TRUE` or `FALSE`, parse error with: {:?}\",\n                    e,\n                ),\n            )\n        })?;\n    let user_name = l.connection.get(\"user_name\").cloned().unwrap_or_default();\n\n    let sp = StorageParams::Webhdfs(StorageWebhdfsConfig {\n        endpoint_url,\n        root,\n        delegation,\n        disable_list_batch,\n        user_name,\n        network_config: None,\n    });\n","sourceCodeStart":415,"sourceCodeEnd":451,"githubUrl":"https://github.com/databendlabs/databend/blob/288d84d76e20a2f8f7173bda9691eb6ece301aa9/src/query/sql/src/planner/binder/location.rs#L415-L451","documentation":"For webhdfs:// locations, the 'disable_list_batch' connection option is parsed as a bool (default true when absent). Any string other than case-insensitive 'true'/'false' causes this InvalidInput error wrapping the ParseBoolError.","triggerScenarios":"CONNECTION = (disable_list_batch = '0') or 'enabled' or 'Y' on a webhdfs:// location during stage creation or COPY.","commonSituations":"Numeric truthiness habits from other systems; YAML/JSON-style booleans pasted as strings; environment-specific templates using 'on'/'off'.","solutions":["Use 'true' or 'false' (case-insensitive) as the value.","Remove the option to take the default (list batching disabled).","Trim whitespace/quotes if the value was copied from a config file."],"exampleFix":"// before\nCONNECTION = (disable_list_batch = '0');\n// after\nCONNECTION = (disable_list_batch = 'true');","handlingStrategy":"validation","validationCode":"// Rust\nfn is_valid_bool_opt(v: &str) -> bool { matches!(v.to_lowercase().as_str(), \"true\" | \"false\") }\n// validate disable_list_batch before use","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Spell boolean values as true/false regardless of the source config format.","Convert numeric booleans at config-generation time, not at query time.","Keep boolean options quoted as strings in CONNECTION."],"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"}