{"record":{"id":"0925c75fab8e627d","repo":"getgrav/grav","slug":"bad-storage-folder-pattern","errorCode":null,"errorMessage":"Bad storage folder pattern","messagePattern":"Bad storage folder pattern","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"system/src/Grav/Framework/Flex/Storage/FolderStorage.php","lineNumber":706,"sourceCode":"        $this->dataExt = $extension;\n        if (mb_strpos($pattern, '{FILE}') === false && mb_strpos($pattern, '{EXT}') === false) {\n            if (isset($options['file'])) {\n                $pattern .= '/{FILE}{EXT}';\n            } else {\n                $filesystem = Filesystem::getInstance(true);\n                $this->dataFile = Utils::basename($pattern, $extension);\n                $pattern = $filesystem->dirname($pattern) . '/{FILE}{EXT}';\n            }\n        }\n        $this->prefixed = (bool)($options['prefixed'] ?? strpos($pattern, '/{KEY:2}/'));\n        $this->indexed = (bool)($options['indexed'] ?? false);\n        $this->keyField = $options['key'] ?? 'storage_key';\n        $this->keyLen = (int)($options['key_len'] ?? 32);\n        $this->caseSensitive = (bool)($options['case_sensitive'] ?? true);\n\n        $pattern = Utils::simpleTemplate($pattern, $this->variables);\n        if (!$pattern) {\n            throw new RuntimeException('Bad storage folder pattern');\n        }\n\n        $this->dataPattern = $pattern;\n    }\n}\n","sourceCodeStart":688,"sourceCodeEnd":712,"githubUrl":"https://github.com/getgrav/grav/blob/6040efed04efa69b8209448ed81308e7c24147c2/system/src/Grav/Framework/Flex/Storage/FolderStorage.php#L688-L712","documentation":"Error \"Bad storage folder pattern\" thrown in getgrav/grav.","triggerScenarios":"Thrown at system/src/Grav/Framework/Flex/Storage/FolderStorage.php:706 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":"6040efed04efa69b8209448ed81308e7c24147c2","analyzedAt":"2026-08-17T05:07:31.593Z","schemaVersion":2},"datasetVersion":"2026-08-17T09:17:11.063Z"}