getgrav/grav · error · RuntimeException

Cannot rename object '{$src}': key '{$dst}' is already taken

Error message

Cannot rename object '{$src}': key '{$dst}' is already taken $srcPath $dstPath

What it means

Error "Cannot rename object '{$src}': key '{$dst}' is already taken $srcPath $dstPath" thrown in getgrav/grav.

Source

Thrown at system/src/Grav/Framework/Flex/Storage/FolderStorage.php:270

     */
    public function renameRow(string $src, string $dst): bool
    {
        if (!$this->hasKey($src)) {
            return false;
        }

        $srcPath = $this->getStoragePath($src);
        $dstPath = $this->getStoragePath($dst);
        if (!$srcPath || !$dstPath) {
            throw new RuntimeException("Destination path '{$dst}' is empty");
        }

        if ($srcPath === $dstPath) {
            return true;
        }

        if ($this->hasKey($dst)) {
            throw new RuntimeException("Cannot rename object '{$src}': key '{$dst}' is already taken $srcPath $dstPath");
        }

        return $this->moveFolder($srcPath, $dstPath);
    }

    /**
     * {@inheritdoc}
     * @see FlexStorageInterface::getStoragePath()
     */
    public function getStoragePath(?string $key = null): ?string
    {
        if (null === $key || $key === '') {
            $path = $this->dataFolder;
        } else {
            $parts = $this->parseKey($key, false);
            $options = [
                $this->dataFolder,      // {FOLDER}
                $parts['key'],          // {KEY}

View on GitHub (pinned to 6040efed04)

When it happens

Trigger: Thrown at system/src/Grav/Framework/Flex/Storage/FolderStorage.php:270 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of getgrav/grav@6040efed04 (2026-08-17). Data as JSON: /api/errors/a85627ad196acb8c. Report an issue: GitHub.