{"record":{"id":"0c480ab7ee8a3ef5","repo":"zeroclaw-labs/zeroclaw","slug":"classification-rule-for-hint-hint-has-no-match","errorCode":null,"errorMessage":"Classification rule for hint '{hint}' has no matching criteria. Provide keywords/patterns or set min_length/max_length.","messagePattern":"Classification rule for hint '(.+?)' has no matching criteria\\. Provide keywords/patterns or set min_length/max_length\\.","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-tools/src/model_routing_config.rs","lineNumber":798,"sourceCode":"\n                match max_length_update {\n                    MaybeSet::Set(value) => next_rule.max_length = Some(value),\n                    MaybeSet::Null => next_rule.max_length = None,\n                    MaybeSet::Unset => {}\n                }\n\n                match priority_update {\n                    MaybeSet::Set(value) => next_rule.priority = value,\n                    MaybeSet::Null => next_rule.priority = 0,\n                    MaybeSet::Unset => {}\n                }\n\n                if matches!(classification_enabled, Some(true)) {\n                    Self::ensure_rule_defaults(&mut next_rule, &hint);\n                }\n\n                if !Self::has_rule_matcher(&next_rule) {\n                    anyhow::bail!(\n                        \"Classification rule for hint '{hint}' has no matching criteria. Provide keywords/patterns or set min_length/max_length.\"\n                    );\n                }\n\n                cfg.query_classification\n                    .rules\n                    .retain(|rule| rule.hint != hint);\n                cfg.query_classification.rules.push(next_rule);\n            }\n        }\n\n        Self::normalize_and_sort_rules(&mut cfg.query_classification.rules);\n        cfg.query_classification.enabled = !cfg.query_classification.rules.is_empty();\n\n        cfg.save().await?;\n\n        Ok(ToolResult {\n            success: true,","sourceCodeStart":780,"sourceCodeEnd":816,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-tools/src/model_routing_config.rs#L780-L816","documentation":"Error \"Classification rule for hint '{hint}' has no matching criteria. Provide keywords/patterns or set min_length/max_length.\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-tools/src/model_routing_config.rs:798 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add keywords/patterns or min_length/max_length criteria to the classification rule."],"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"}