{"record":{"id":"3687bc3dd9350ce9","repo":"databendlabs/databend","slug":"e","errorCode":null,"errorMessage":"{e}","messagePattern":"\\{e\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"src/meta/binaries/meta/ee_main.rs","lineNumber":31,"sourceCode":"// limitations under the License.\n\n#![feature(stmt_expr_attributes)]\n#![allow(clippy::collapsible_if, clippy::uninlined_format_args)]\nmod entry;\n\nuse databend_common_base::mem_allocator::DefaultGlobalAllocator;\nuse databend_meta_cli_config::Config;\nuse databend_meta_cli_config::MetaConfig;\nuse databend_meta_runtime::DatabendRuntime;\n\n#[global_allocator]\npub static GLOBAL_ALLOCATOR: DefaultGlobalAllocator = DefaultGlobalAllocator::create();\n\n#[tokio::main(flavor = \"multi_thread\")]\nasync fn main() -> anyhow::Result<()> {\n    let conf: MetaConfig = Config::load(true)?\n        .try_into()\n        .map_err(|e: String| anyhow::anyhow!(e))?;\n    conf.service.validate()?;\n    entry::entry::<DatabendRuntime>(conf).await\n}\n","sourceCodeStart":13,"sourceCodeEnd":35,"githubUrl":"https://github.com/databendlabs/databend/blob/288d84d76e20a2f8f7173bda9691eb6ece301aa9/src/meta/binaries/meta/ee_main.rs#L13-L35","documentation":"The meta node binary's main loads its configuration via Config::load(true)? then try_into MetaConfig; a String-typed conversion error is converted into anyhow with the raw message {e}. The process exits non-zero because the loaded config cannot be interpreted as a valid MetaConfig.","triggerScenarios":"Starting the meta service (databend-meta) with a config file / CLI / env combination that Config::load accepts but whose try_into::<MetaConfig> fails — e.g. invalid or mutually conflicting field values produced by the config loader's validation-as-string errors.","commonSituations":"Deprecated or renamed config keys in databend-meta.toml after an upgrade; wrong types (string where number expected); env var overrides producing invalid values; --config-file pointing at a query-node config by mistake.","solutions":["Read the {e} message — it states exactly which config key/value failed conversion.","Validate the config with databend-meta --cmd config or the config-check subcommand before launch.","Update the config file to the current schema for your Databend version (check release notes for renames).","Simplify to a minimal config and add fields back incrementally to isolate the offending key."],"exampleFix":"// before (databend-meta.toml)\nlog_dir = \"/var/log/databend/meta\"     # removed key in new schema\n// after\n[log]\ndir = \"/var/log/databend/meta\"","handlingStrategy":"validation","validationCode":"# Shell: validate meta config before starting the service\ndatabend-meta --config-file databend-meta.toml --cmd config | grep -i error && exit 1","typeGuard":null,"tryCatchPattern":"// Rust: surface which config entry failed\nlet conf: MetaConfig = Config::load(true)?\n    .try_into()\n    .map_err(|e: String| { eprintln!(\"invalid meta config: {e}\"); anyhow::anyhow!(e) })?;","preventionTips":["Run config validation in CI and before every restart","Check release notes for config key renames when upgrading","Never reuse a query-node config file for the meta service"],"tags":["rust","config","meta-service","cli"],"backgroundTag":"config-type-mismatch","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"}