ErrLookup › getgrav/grav
getgrav/grav
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony · PHP · 551 source files
Analyzed at 6040efed04 on 2026-08-17. 255 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| Invalid arguments, expected DOMElement or DOMDocument | exception | error | php, dom, html-parsing, invalid-argument, iterator |
| Invalid arguments, expected DOMElement or DOMDocument | exception | error | php, dom, html-parsing, invalid-argument, iterator |
| No backups defined... | exception | error | grav, backup, configuration, scheduler, runtimeexception |
| Backup location: {$backup_root} does not exist... | exception | error | grav, backup, filesystem, path-not-found, configuration |
| Invalid backup location: {$backup_root} | exception | error | grav, backup, realpath, symlink, open-basedir, filesystem |
| Backup location not allowed (outside site root): {$backup_ro | exception | error | grav, backup, security, path-traversal, ghsa-fch7-cpv4-w7hg, cwe-22 |
| Cache folder not defined. | exception | error | grav, configuration, cache, stream-wrapper, badmethodcallexception |
| Setup: Configuration reload loop detected! | exception | critical | grav, configuration, streams, infinite-loop, bootstrap |
| Configuration is missing streams.schemes! | exception | critical | grav, configuration, streams, bootstrap, invalid-argument |
| Configuration is missing keys %s from streams.schemes! | exception | critical | grav, configuration, streams, bootstrap, missing-keys |
| Unable to %s: %s | exception | error | php, filesystem, permissions, file-deletion, ownership |
| Unknown error | exception | warning | php, filesystem, file-deletion, unknown-error, race-condition |
| Unable to create directory: %s | exception | error | php, filesystem, mkdir, permissions, open-basedir |
| ZipArchiver: refused to extract {archive_file}. Archive exce | exception | error | grav, zip, security, decompression-bomb, cwe-409, archive-limits |
| ZipArchiver: refused to extract {archive_file}. Entry "{name | exception | critical | grav, zip, security, zip-slip, cwe-22, path-traversal |
| ZipArchiver: refused to extract {archive_file}. Entry "{name | exception | error | grav, zip, security, cwe-674, nesting-depth, archive-limits |
| ZipArchiver: refused to extract {archive_file}. Archive exce | exception | error | grav, zip, security, decompression-bomb, cwe-409, ghsa-8h9x-89f2-m7x3 |
| ZipArchiver: ZIP failed to extract {archive_file} to {destin | exception | error | grav, zip, extraction, permissions, disk-full |
| ZipArchiver: Failed to open {archive_file} | exception | error | grav, zip, corrupt-archive, ziparchive-open, download-truncation |
| ZipArchiver: failed to read entry "{name}" from {archive_fil | exception | error | grav, zip, corrupt-archive, stream-read, rollback, encrypted-zip |
| ZipArchiver: failed to write "{target}". | exception | error | |
| ZipArchiver: Zip PHP module not installed... | exception | error | |
| ZipArchiver: {source} cannot be found... | exception | error | |
| ZipArchiver: {archive_file} cannot be created: {error} | exception | error | |
| ZipArchiver: {archive_file} cannot be opened: {error} | exception | error | |
400 Page content resolves to disallowed markup (%s) after Twig processing. Remove th | validation | error | |
| Root page cannot be moved to %s | exception | error | |
| Page /%s cannot be moved to non-existing path %s | exception | error | |
| Switching Flex Page object during onAdminSave event is not s | exception | error | |
| Cannot reorder a page which has no parent | exception | error | |
| New parent page '{$parentKey}' not found. | exception | error | |
| Page has no path | exception | error | |
| Page /%s cannot be copied to itself | exception | error | |
| Page /%s cannot be moved to itself | exception | error | |
| Changing page template failed: {$oldFilepath} => {$newFilepa | exception | error | |
| Flex saveRow(%s): %s | exception | error | |
| User account with this username already exists | validation | error | |
| Switching Flex User object during onAdminSave event is not s | exception | error | |
| The cache/gpm folder is not writable. Please check the folde | exception | error | |
| GPM not reachable. Please check your internet connection or | exception | error | |
| Only official GPM URLs are allowed. You can modify this beha | exception | error | |
2 Package <cyan>$slug</cyan> is required in an older version by package <cyan>$dep | exception | error | |
| <red>One of the packages require PHP {$dependencies['php']}. | console | error | |
| <red>One of the packages require Grav {$dependencies['grav'] | console | error | |
1 Dependency <cyan>{$package_yaml['name']}</cyan> requires version <cyan>{$depende | exception | error | |
| PLUGIN_ADMIN.FAILED_TO_MOVE_UPLOADED_FILE | exception | error | |
| PLUGIN_ADMIN.FILE_COULD_NOT_BE_DELETED: PLUGIN_ADMIN.BAD_FIL | exception | error | |
| Failed to rename file: PLUGIN_ADMIN.BAD_FILENAME | exception | error | |
| Failed to rename file: Bad destination | exception | error | |
| File could not be renamed: %s already exists (%s) | exception | error | |
| File could not be renamed: %s -> %s (%s) | exception | error | |
| Meta could not be renamed: %s -> %s (%s) | exception | error | |
| PLUGIN_ADMIN.FILE_COULD_NOT_BE_DELETED | exception | error | |
| {class}::{method}() not found. | exception | error | |
| Invalid argument $key. | validation | error | |
| You need to EXIF PHP Extension to use this function | exception | error | |
| Media has no thumbnail set | exception | error | |
| {class}::{method}() not found. | exception | error | |
400 Page content resolves to disallowed markup (%s) after Twig processing. Remove th | validation | error | |
| Failed: Cannot set page parent to self | validation | error | |
| Failed: Cannot set page parent to a child of current page | validation | error | |
| Argument should be either header variable name or array of p | validation | error | |
| MinuteBefore parameter cannot be positive ! | exception | error | |
| MinuteAfter parameter cannot be negative ! | exception | error | |
| Invalid value: it should be '*' or between {$min} and {$max} | exception | error | |
| The email can be only string or array | exception | error | |
| Priority must be high, normal, or low | exception | error | |
| Job execution failed | exception | error | |
| Invalid output type | validation | error | |
| SVG could not be sanitized, it has been moved to the logs/qu | exception | error | |
| Failed to write nonce key file | exception | error | |
| Failed to commit nonce key file | exception | error | filesystem, permissions, installation, csrf, nonce |
| {theme} theme could not be found | exception | error | theme, configuration, installation, frontend |
| Theme name not provided. | validation | error | validation, theme, api-misuse, arguments |
| Stream '{$type}' could not be initialized. | exception | error | streams, configuration, theme, filesystem, stream-wrapper |
| Filter "%s" is not allowed on deeply nested data inside sand | exception | error | twig, sandbox, security, recursion, serialization |
| Filter "%s" is not allowed on a "%s" object inside sandboxed | exception | error | twig, sandbox, security, serialization, policy |
| The callable passed to the "array_group_by" filter must be a | exception | error | twig, sandbox, security, filter, callable |
| Twig |filter("{arrow}") is not allowed. | exception | error | twig, security, filter, callable, rce-guard |
| Twig |map("{arrow}") is not allowed. | exception | error | twig, security, filter, callable, rce-guard |
| Twig |reduce("{arrow}") is not allowed. | exception | error | twig, security, filter, callable, rce-guard |
| Twig |find("{arrow}") is not allowed. | exception | error | twig, security, filter, callable, rce-guard |
| Twig |sort("{arrow}") is not allowed. | exception | error | twig, security, filter, callable, rce-guard, sorting |
| {% link with x %}: x is not an array | exception | error | twig, assets, template, type-error, tag |
| {% link in x %}: x is not a string | exception | error | twig, assets, template, type-error, tag |
| {% script with x %}: x is not an array | exception | error | twig, assets, template, type-error, tag, javascript |
| {% script in x %}: x is not a string | exception | error | twig, assets, template, type-error, tag, javascript |
| {% {$this->tagName} with x %}: x is not an array | exception | error | twig, assets, template, type-error, tag, css |
| {% {$this->tagName} in x %}: x is not a string | exception | error | twig, assets, template, type-error, tag, css |
| Test "%s" is not allowed. | exception | error | twig, sandbox, security, policy, tests |
| Tag "%s" is not allowed. | exception | error | twig, sandbox, security, policy, tags |
| Filter "%s" is not allowed. | exception | error | |
| Function "%s" is not allowed. | exception | error | |
| Calling "%s" method on a "%s" object is not allowed. | exception | error | |
| Calling "%s" property on a "%s" object is not allowed. | exception | error | |
| Unexpected end of template. Twig was looking for the followi | exception | error | |
| $e->getRawMessage() | http | error | |
| $e->getMessage() | http | error | |
| Unable to find one of the following templates: "%s". | exception | error | |
| Bad configuration: system.custom_base_url | exception | error | |
| Malformed URL: {url} | exception | error | |
| Password hashing failed: no password provided. | exception | error | |
| Password hashing failed: internal error. | exception | error | |
| Internal Error | exception | error | |
| Error - can not open file. | exception | error | |
| Page not available for self@ reference: %s | exception | error | |
| Token path not found: %s | exception | error | |
| Failed to load console commands for plugin {$name} | console | error | |
| The command "%s" does not exist. | console | error | grav, cli, console, plugin-commands, command-not-found |
| Plugin "{$this->pluginName}" is not installed. | console | error | grav, cli, plugin, plugin-not-found |
| Plugin "{$this->pluginName}" is not enabled. | console | error | grav, cli, plugin, configuration, plugin-disabled |
| Internal Error | console | error | grav, cli, filesystem, cwd, sandbox |
| Uploaded archive file is not a valid Grav update package | console | critical | grav, gpm, direct-install, upgrade, package-validation |
| Uploaded archive file is not a valid Grav update package | console | critical | grav, gpm, self-upgrade, upgrade, package-validation |
| Bad child | exception | error | grav, acl, permissions, tree-structure |
| json_encode(): failed to encode dependencies | exception | error | grav, acl, permissions, json-encode, utf-8, yaml |
| At least one cache must be specified | exception | error | grav, cache, chain-cache, configuration |
| The class '%s' does not implement the '%s' interface | exception | error | grav, cache, chain-cache, interface-mismatch, psr-16 |
| Cache keys must be array or Traversable, "%s" given | validation | error | grav, cache, psr-16, invalid-argument, iterable |
| Cache values must be array or Traversable, "%s" given | validation | error | grav, cache, psr-16, invalid-argument, iterable |
| Cache key must be string, "%s" given | validation | error | grav, cache, psr-16, invalid-key, type-validation |
| Cache key length must be greater than zero | exception | error | grav, cache, psr-16, invalid-key, empty-string |
| Cache key length must be less than 65 characters, key had %d | exception | error | grav, cache, psr-16, invalid-key, key-length |
| Cache key "%s" contains reserved characters {}()/\@: | exception | error | grav, cache, psr-16, invalid-key, reserved-characters |
| Expiration date must be an integer, a DateInterval or null, | exception | error | grav, cache, psr-16, ttl, type-validation |
| Invalid argument $value | exception | error | grav, flex, collection, type-validation |
| Invalid argument $element | exception | error | grav, flex, collection, type-validation |
| Bad data | exception | error | php, grav, content-block, unserialization, invalid-data |
| Cannot unserialize Block: %s | exception | error | php, grav, content-block, unserialization, wrapper-exception |
| Unsupported version %s | exception | error | php, grav, content-block, version-mismatch, cache-invalidation |
| Creating directory failed for {filepath} | exception | error | php, grav, filesystem, permissions, mkdir |
| Opening file for writing failed on error {$message} | exception | error | php, grav, filesystem, permissions, fopen |
| Failed to save file {filepath} | exception | error | php, grav, filesystem, symlink, file-save, atomic-write |
| Bad Data | exception | error | php, grav, filesystem, file-read, data-file |
| Failed to load file '%s': %s | exception | error | php, grav, file-io, parse-error, data-file, wrapper-exception |
| Failed to save file '%s': %s | exception | error | php, grav, validation, data-file, serialization, file-save |
| Cannot save data, string required | exception | error | php, grav, type-error, file-save, api-misuse |
| Decoding CSV failed | exception | error | php, grav, csv, pcre, backtrack-limit, memory |
| CSV header missing | exception | error | php, grav, csv, header, empty-input, parse-error |
| Badly formatted CSV line: {line} | exception | error | php, grav, csv, data-integrity, parse-error, delimiter |
| Decoding INI failed | exception | error | php, grav, ini, parse-error, config |
| Encoding JSON failed: {json_last_error_msg} | exception | error | php, grav, json, encoding, utf-8, serialization |
| Decoding JSON failed: {json_last_error_msg} | exception | error | php, grav, json, parse-error, utf-8-bom, config |
| Encoding markdown failed | exception | error | php, grav, markdown, utf-8, preg-replace, frontmatter |
| Decoding markdown failed | exception | error | php, grav, markdown, utf-8, encoding, page-content |
| Decoding serialized data failed | exception | error | php, serialization, unserialize, grav, file-corruption |
| Encoding YAML failed: {message} | exception | error | yaml, grav, serialization, symfony-yaml, dump |
| Decoding YAML failed: {message} | exception | error | yaml, grav, parse-error, frontmatter, symfony-yaml |
| __METHOD__(): You need to pass option 'directory' | exception | error | grav, flex, forms, invalid-argument, factory |
| Flash has no directory | exception | error | grav, flex, forms, flash, session-state |
| __METHOD__(): 'object' should be instance of FlexObjectInter | exception | error | grav, flex, forms, type-check, invalid-argument |
| __METHOD__(): 'directory' should be instance of FlexDirector | exception | error | grav, flex, forms, type-check, invalid-argument |
| __METHOD__(): You need to pass option 'directory' or 'object | exception | error | grav, flex, forms, missing-argument, factory |
| Flash has no object | exception | error | grav, flex, forms, flash, session-state |
| Object has to be type %s, %s given | exception | error | grav, flex, type-mismatch, identifier |
| Flex Directory not defined, object is not fully defined | exception | error | grav, flex, collection, initialization |
| Cannot create new object (Already exists) | exception | error | grav, flex, duplicate-key, crud |
| json_encode(): failed to encode group permissions | exception | error | grav, flex, json, permissions, utf-8 |
500 Iterable should return username (string). | exception | error | grav, flex, frontmatter, authors, validation |
| Grav\Framework\Flex\Pages\Traits\PageLegacyTrait::init(): No | exception | error | grav, flex-pages, legacy-api, not-implemented |
| Grav\Framework\Flex\Pages\Traits\PageLegacyTrait::raw(string | exception | error | grav, flex-pages, legacy-api, not-implemented, raw-content |
| Grav\Framework\Flex\Pages\Traits\PageLegacyTrait::file(): No | exception | error | grav, flex-pages, legacy-api, not-implemented, filesystem |
| Failed: Cannot set page parent to self | exception | warning | grav, flex-pages, page-tree, move, self-reference |
| Failed: Cannot set page parent to a child of current page | exception | warning | grav, flex-pages, page-tree, move, cycle-detection |
| Unknown extension type | exception | error | grav, flex, storage, configuration, file-extension |
| Cannot copy object: key '{$dst}' is already taken | exception | error | |
| Argument $options is missing 'folder' | validation | error | |
| Cannot copy object: key '{$dst}' is already taken | exception | error | |
| Destination path '{$dst}' is empty | exception | error | |
| Cannot rename object '{$src}': key '{$dst}' is already taken | exception | error | |
| Flex saveFile(%s): %s | exception | error | |
| Flex deleteFile(%s): %s | exception | error | |
| Flex copyFolder(%s, %s): %s | exception | error | |
| Flex moveFolder(%s, %s): %s | exception | error | |
| Flex deleteFolder(%s): %s | exception | error | |
| Bad storage folder pattern | exception | error | |
| Argument \$options is missing 'folder' | exception | error | |
| Flex: %s | exception | error | |
| Cannot copy object: key '{$dst}' is already taken | exception | error | |
| Cannot rename object: key '{$dst}' is already taken | exception | error | |
| Flex saveRow(%s): %s | exception | error | |
| Storage path is not defined | exception | error | |
| No temporary file | exception | error | |
| Invalid path provided for move operation; must be a non-empt | exception | error | |
| Uploaded file could not be moved to %s | exception | error | |
| SVG file XSS check failed on %s | exception | error | |
| Cannot retrieve stream due to upload error | exception | error | |
| Cannot retrieve stream after it has already been moved | exception | error | |
| Cannot retrieve stream as the file is missing | exception | error | |
| Form has already been submitted | exception | error | |
| FlexForm: Bad HTTP method %s | exception | error | |
| sprintf($grav['language']->translate('PLUGIN_FORM.FILEUPLOAD | exception | error | |
| A relative URI must not have a path beginning with a segment | validation | error | |
| The path of a URI with an authority must start with a slash | validation | error | |
| json_last_error_msg() | exception | error | |
500 Setting relationship is not supported | exception | error | |
| %s relationship has too few objects in it | exception | error | |
| %s relationship has too many objects in it | exception | error | |
| Bad identifier type %s | exception | error | |
| The middleware is not a valid %s and is not passed in the Co | exception | error | |
500 Session hasn't been initialized. | exception | error | |
| URL must be a string | validation | error | uri, type-check, validation, user-input |
| Malformed URL: {$url} | validation | error | uri, validation, parse-url, user-input |
| Uri scheme must be a string | validation | error | uri, type-check, validation |
| Uri user info must be a string | validation | error | uri, type-check, validation, userinfo |
| Uri host must be a string | validation | error | uri, type-check, validation, host |
| Uri host name validation failed | validation | error | uri, host, hostname, validation, rfc-3986 |
| Uri port must be null or an integer between 0 and 65535 | validation | error | uri, port, type-check, validation |
| Uri path must be a string | validation | error | uri, path, type-check, validation |
| Uri query string and fragment must be a string | validation | error | uri, query-string, fragment, type-check, validation |
| Following requirements have failed: | validation | critical | installer, requirements, php-version, upgrade, grav |
500 Internal Error | http | error | installer, filesystem, realpath, deployment |
400 Grav has already been installed here! | http | error | installer, upgrade, filesystem, grav |
| Could not update system configuration to maintain backwards | exception | error | installer, yaml, configuration, filesystem-permissions, upgrade |
| Could not update system configuration for Twig compatibility | exception | error | installer, yaml, configuration, twig, filesystem-permissions |
| Could not remove the retired security.*.xss_scan_output sett | exception | error | installer, yaml, configuration, xss, deprecated-settings |
| Could not migrate the Twig-sandbox allowlists to the additiv | exception | critical | grav, installer, upgrade, yaml, permissions, twig-sandbox, security-config |
| Cannot override frozen service "%s". | exception | error | pimple, dependency-injection, php, frozen-service, service-override |
| Identifier "%s" does not contain an object definition. | exception | error | pimple, dependency-injection, php, arrayaccess, type-error |
| Identifier "%s" is not defined. | exception | error | pimple, dependency-injection, php, unknown-service, typo |
| Service definition is not a Closure or invokable object. | exception | error | pimple, dependency-injection, php, factory, invokable, type-error |
| Callable is not a Closure or invokable object. | exception | error | pimple, dependency-injection, php, protect, invokable, type-error |
| Extension service definition is not a Closure or invokable o | exception | error | pimple, dependency-injection, php, extend, invokable, decorator |
| Identifier "%s" is not defined. | exception | error | pimple, psr-11, service-locator, dependency-injection, php |
| Expected endblock for block "%s" (but "%s" given). | exception | error | twig, template-syntax, deferred-extension, block, grav |
| Not Implemented | exception | error | grav, assets, htmlblock, not-implemented, render, twig |
| Redis authentication failed | exception | warning | grav, cache, redis, authentication, phpredis, fallback |
| Could not select alternate Redis database ID | exception | warning | grav, cache, redis, database-index, phpredis, fallback |
| Bad form data for field collection '%s': %s used instead of | validation | error | grav, blueprint, form-validation, data-type, php |
| Passwords did not match. | validation | error | user-management, password, validation, flex, accounts |
| %s: Relationship %s does not exist | exception | error | flex, user-management, relationships, api, invalid-argument |
400 %s: Relationship %s cannot be modified | validation | error | flex, user-management, relationships, http-400, read-only |
| Malformed GPM URL: {$package_file} | exception | error | gpm, package-management, url, validation, installer |
| Bad package file: %s | exception | error | gpm, installer, zip, package-management, download |
| Cannot read file | exception | warning | logging, files, log-viewer, race-condition, permissions |
| Unsupported media filter operator "%s". | exception | error | media, filter, operator, validation, collections |
| Unexpected token type in cache tag. | exception | error | twig, template, cache, syntax-error, theming |
| Invalid username: contains invalid characters or sequences | validation | error | user-management, security, path-traversal, validation, accounts |
| User account with this username already exists | validation | error | user-management, duplicate, registration, accounts, data-safety |
| Passwords did not match. | validation | error | user-management, password, validation, accounts, data-user |
| User class was called too early! | exception | error | bootstrap, user-management, load-order, php, class-loading |
| JSON encoding failed: %s. Encoding: %s | exception | error | logging, json, utf-8, monolog, encoding |
| Bad object class: %s | exception | error | flex, configuration, class-loading, blueprint, custom-types |
| Bad collection class: %s | exception | error | flex, configuration, class-loading, blueprint, collections |
| Bad index class: %s | exception | error | flex, configuration, class-loading, blueprint, index |
| Bad storage class: %s | exception | error | flex, configuration, class-loading, storage, blueprint |
403 Forbidden | http | error | flex, authorization, permissions, http-403, acl |
| Cannot unserialize '{$type}': Bad data | exception | error | flex, serialization, cache, session, data-integrity |
| Cannot unserialize Flex type '{$type}': Directory not found | exception | error | flex, unserialize, grav, directory-not-found, cache |
| Bad Data Formatter | exception | error | flex, storage, formatter, configuration, grav |
| Invalid storage key: "%s" | validation | error | flex, storage, validation, filesystem, grav |
| Object has to be type %s, %s given | exception | error | media, identifier, type-mismatch, grav |
500 Not Implemented | http | error | media, response, not-implemented, image, grav, http-500 |
| Versions file cannot be read | exception | critical | installer, versions, file-permissions, grav, configuration |
| Failed to update {file}: {message} | exception | error | yaml, updater, installer, grav, file-write, configuration |