getgrav/grav · error · RuntimeException

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

Error message

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

What it means

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

Source

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

        $list = [];
        foreach ($rows as $key => $row) {
            $key = (string)$key;
            $list[$key] = $this->saveRow($key, $row);
        }

        return $list;
    }

    /**
     * @param string $src
     * @param string $dst
     * @return bool
     * @throws RuntimeException
     */
    public function copyRow(string $src, string $dst): bool
    {
        if ($this->hasKey($dst)) {
            throw new RuntimeException("Cannot copy object: key '{$dst}' is already taken");
        }

        if (!$this->hasKey($src)) {
            return false;
        }

        $srcPath = $this->getStoragePath($src);
        $dstPath = $this->getStoragePath($dst);
        if (!$srcPath || !$dstPath) {
            return false;
        }

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

    /**
     * {@inheritdoc}
     * @see FlexStorageInterface::renameRow()

View on GitHub (pinned to 6040efed04)

When it happens

Trigger: Thrown at system/src/Grav/Framework/Flex/Storage/FolderStorage.php:232 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/f357a7f13311bcc6. Report an issue: GitHub.