{"record":{"id":"47959aa146305da6","repo":"nextcloud/server","slug":"missing-filter-rule-block-in-request","errorCode":null,"errorMessage":"Missing filter-rule block in request","messagePattern":"Missing filter-rule block in request","errorType":"exception","errorClass":"Sabre\\DAV\\Exception\\BadRequest","httpStatus":400,"severity":"error","filePath":"apps/dav/lib/Connector/Sabre/FilesReportPlugin.php","lineNumber":150,"sourceCode":"\t\t\t} elseif ($name === '{DAV:}prop') {\n\t\t\t\t// propfind properties\n\t\t\t\tforeach ($reportProps['value'] as $propVal) {\n\t\t\t\t\t$requestedProps[] = $propVal['name'];\n\t\t\t\t}\n\t\t\t} elseif ($name === '{DAV:}limit') {\n\t\t\t\tforeach ($reportProps['value'] as $propVal) {\n\t\t\t\t\tif ($propVal['name'] === '{DAV:}nresults') {\n\t\t\t\t\t\t$limit = (int)$propVal['value'];\n\t\t\t\t\t} elseif ($propVal['name'] === $ncns . 'firstresult') {\n\t\t\t\t\t\t$offset = (int)$propVal['value'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (empty($filterRules)) {\n\t\t\t// an empty filter would return all existing files which would be slow\n\t\t\tthrow new BadRequest('Missing filter-rule block in request');\n\t\t}\n\n\t\t// gather all file ids matching filter\n\t\ttry {\n\t\t\t$resultFileIds = $this->processFilterRulesForFileIDs($filterRules);\n\t\t\t// no logic in circles and favorites for paging, we always have all results, and slice later on\n\t\t\t$resultFileIds = array_slice($resultFileIds, $offset ?? 0, $limit ?? null);\n\t\t\t// fetching nodes has paging on DB level – therefore we cannot mix and slice the results, similar\n\t\t\t// to user backends. I.e. the final result may return more results than requested.\n\t\t\t$resultNodes = $this->processFilterRulesForFileNodes($filterRules, $limit ?? null, $offset ?? null);\n\t\t} catch (TagNotFoundException $e) {\n\t\t\tthrow new PreconditionFailed('Cannot filter by non-existing tag');\n\t\t}\n\n\t\t$results = [];\n\t\tforeach ($resultNodes as $entry) {\n\t\t\tif ($entry) {\n\t\t\t\t$results[] = $this->wrapNode($entry);","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/nextcloud/server/blob/ecdeb153ffdf227235c9a7e2d13dbe0f9c817bc3/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php#L132-L168","documentation":"Error \"Missing filter-rule block in request\" thrown in nextcloud/server.","triggerScenarios":"Thrown at apps/dav/lib/Connector/Sabre/FilesReportPlugin.php:150 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ecdeb153ffdf227235c9a7e2d13dbe0f9c817bc3","analyzedAt":"2026-08-17T01:36:13.386Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}