{"record":{"id":"f1b04423b6b67c76","repo":"zeroclaw-labs/zeroclaw","slug":"config-dir-cannot-be-empty","errorCode":null,"errorMessage":"--config-dir cannot be empty","messagePattern":"--config-dir cannot be empty","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/main.rs","lineNumber":3473,"sourceCode":"                \"cli-warn-crypto-provider\",\n                &[(\"err\", &format!(\"{e:?}\"))],\n                \"Warning: Failed to install default crypto provider\"\n            )\n        );\n    }\n\n    let cmd = apply_i18n_to_command(command);\n\n    if std::env::args_os().len() <= 1 {\n        return print_no_command_help(cmd);\n    }\n\n    let cli = Cli::from_arg_matches(&cmd.get_matches()).map_err(|e| e.exit())?;\n\n    if let Some(config_dir) = &cli.config_dir\n        && config_dir.trim().is_empty()\n    {\n        bail!(\"--config-dir cannot be empty\");\n    }\n\n    #[cfg(feature = \"agent-runtime\")]\n    crate::i18n::init(&crate::i18n::detect_locale());\n\n    // Completions must remain stdout-only and should not load config or initialize logging.\n    // This avoids warnings/log lines corrupting sourced completion scripts.\n    if let Commands::Completions { shell } = &cli.command {\n        let mut stdout = std::io::stdout().lock();\n        write_shell_completion(*shell, &mut stdout)?;\n        return Ok(());\n    }\n\n    // Docs-pipeline subcommands: stdout-only, no config load, no logging init.\n    match &cli.command {\n        Commands::MarkdownHelp => {\n            clap_markdown::print_help_markdown::<Cli>();\n            return Ok(());","sourceCodeStart":3455,"sourceCodeEnd":3491,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/src/main.rs#L3455-L3491","documentation":"Error \"--config-dir cannot be empty\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at src/main.rs:3473 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty path to --config-dir, e.g. `--config-dir ~/.zeroclaw`.","Omit --config-dir to use the default configuration directory."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}