{"record":{"id":"965968980a2c79d7","repo":"sigoden/dufs","slug":"invalid-q","errorCode":null,"errorMessage":"invalid q","messagePattern":"invalid q","errorType":"validation","errorClass":"anyhow::Error","httpStatus":400,"severity":"error","filePath":"src/server.rs","lineNumber":612,"sourceCode":"            user,\n            access_paths,\n            res,\n        )\n    }\n\n    async fn handle_search_dir(\n        &self,\n        path: &Path,\n        query_params: &HashMap<String, String>,\n        head_only: bool,\n        user: Option<String>,\n        access_paths: AccessPaths,\n        res: &mut Response,\n    ) -> Result<()> {\n        let mut paths: Vec<PathItem> = vec![];\n        let search = query_params\n            .get(\"q\")\n            .ok_or_else(|| anyhow!(\"invalid q\"))?\n            .to_lowercase();\n        if search.is_empty() {\n            return self\n                .handle_ls_dir(path, true, query_params, head_only, user, access_paths, res)\n                .await;\n        }\n\n        if !head_only {\n            let path_buf = path.to_path_buf();\n            let hidden = Arc::new(self.args.hidden.to_vec());\n            let search = search.clone();\n\n            let search_paths = tokio::spawn(collect_dir_entries(\n                access_paths.clone(),\n                self.running.clone(),\n                path_buf,\n                hidden,\n                self.args.allow_symlink,","sourceCodeStart":594,"sourceCodeEnd":630,"githubUrl":"https://github.com/sigoden/dufs/blob/fe7fd564f80dfbac361c8e0589c3845638149d38/src/server.rs#L594-L630","documentation":"Sentinel validation error in handle_search_dir: the search-directory handler requires the `q` query parameter to be present. It fires when a request reaches the search path without `q` in the URL query string, so there is no term to filter directory entries with.","triggerScenarios":"Thrown at src/server.rs:612 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include a non-empty `q` query parameter, e.g. GET /dir?q=name","If a plain directory listing is intended, omit the search mode entirely instead of sending an empty or missing `q`"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fe7fd564f80dfbac361c8e0589c3845638149d38","analyzedAt":"2026-09-09T13:01:22.843Z","contentChangedAt":"2026-09-09T13:01:22.843Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}