{"record":{"id":"8d90250218b445df","repo":"quickwit-oss/quickwit","slug":"unknown-tool-subcommand-subcommand","errorCode":null,"errorMessage":"unknown tool subcommand `{subcommand}`","messagePattern":"unknown tool subcommand `(.+?)`","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"quickwit/quickwit-cli/src/tool.rs","lineNumber":240,"sourceCode":"    GarbageCollect(GarbageCollectIndexArgs),\n    LocalIngest(LocalIngestDocsArgs),\n    LocalSearch(LocalSearchArgs),\n    ExtractSplit(ExtractSplitArgs),\n    Merge(MergeArgs),\n}\n\nimpl ToolCliCommand {\n    pub fn parse_cli_args(mut matches: ArgMatches) -> anyhow::Result<Self> {\n        let (subcommand, submatches) = matches\n            .remove_subcommand()\n            .context(\"failed to parse tool subcommand\")?;\n        match subcommand.as_str() {\n            \"gc\" => Self::parse_garbage_collect_args(submatches),\n            \"local-ingest\" => Self::parse_local_ingest_args(submatches),\n            \"local-search\" => Self::parse_local_search_args(submatches),\n            \"merge\" => Self::parse_merge_args(submatches),\n            \"extract-split\" => Self::parse_extract_split_args(submatches),\n            _ => bail!(\"unknown tool subcommand `{subcommand}`\"),\n        }\n    }\n\n    fn parse_local_ingest_args(mut matches: ArgMatches) -> anyhow::Result<Self> {\n        let config_uri = matches\n            .remove_one::<String>(\"config\")\n            .map(|uri_str| Uri::from_str(&uri_str))\n            .expect(\"`config` should be a required arg.\")?;\n        let index_id = matches\n            .remove_one::<String>(\"index\")\n            .expect(\"`index` should be a required arg.\");\n        let input_path_opt = if let Some(input_path) = matches.remove_one::<String>(\"input-path\") {\n            Some(Uri::from_str(&input_path)?)\n        } else {\n            None\n        };\n\n        let input_format = matches","sourceCodeStart":222,"sourceCodeEnd":258,"githubUrl":"https://github.com/quickwit-oss/quickwit/blob/a39730c5cdcd1a4fe798403737ae293999ea21f8/quickwit/quickwit-cli/src/tool.rs#L222-L258","documentation":"The `quickwit tool` subcommand parser received a sub-subcommand that matches none of the registered tool operations (gc, local-ingest, local-search, extract-split, merge). The extracted subcommand name fell through the match arms to the error branch.","triggerScenarios":"Thrown at quickwit/quickwit-cli/src/tool.rs:240 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run `quickwit tool --help` to list valid tool subcommands","Check for typos or outdated subcommand names from older Quickwit versions"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a39730c5cdcd1a4fe798403737ae293999ea21f8","analyzedAt":"2026-09-08T13:19:37.784Z","contentChangedAt":"2026-09-08T13:19:37.784Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}