{"record":{"id":"4f4b93e033ee6170","repo":"zeroclaw-labs/zeroclaw","slug":"search-query-cannot-be-empty","errorCode":null,"errorMessage":"Search query cannot be empty","messagePattern":"Search query cannot be empty","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-tools/src/web_search_tool.rs","lineNumber":1116,"sourceCode":"            },\n            \"required\": [\"query\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let query = args.get(\"query\").and_then(|q| q.as_str()).ok_or_else(|| {\n            ::zeroclaw_log::record!(\n                WARN,\n                ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Reject)\n                    .with_outcome(::zeroclaw_log::EventOutcome::Failure)\n                    .with_attrs(::serde_json::json!({\"param\": \"query\"})),\n                \"web_search: missing query parameter\"\n            );\n            anyhow::Error::msg(\"Missing required parameter: query\")\n        })?;\n\n        if query.trim().is_empty() {\n            anyhow::bail!(\"Search query cannot be empty\");\n        }\n\n        ::zeroclaw_log::record!(\n            INFO,\n            ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Note),\n            &format!(\"Searching web for: {}\", query)\n        );\n\n        let resolution = resolve_web_search_provider(&self.model_provider);\n        if resolution.used_fallback {\n            ::zeroclaw_log::record!(\n                WARN,\n                ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Note)\n                    .with_outcome(::zeroclaw_log::EventOutcome::Unknown),\n                &format!(\n                    \"Unknown web search model_provider '{}'; falling back to '{}'\",\n                    self.model_provider, resolution.canonical_provider\n                )","sourceCodeStart":1098,"sourceCodeEnd":1134,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-tools/src/web_search_tool.rs#L1098-L1134","documentation":"Error \"Search query cannot be empty\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-tools/src/web_search_tool.rs:1116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty search query string to the web_search tool.","Trim the query but ensure at least one non-whitespace character remains."],"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"}