{"record":{"id":"f357a7f13311bcc6","repo":"getgrav/grav","slug":"cannot-copy-object-key-dst-is-already-taken-f357a7","errorCode":null,"errorMessage":"Cannot copy object: key '{$dst}' is already taken","messagePattern":"Cannot copy object: key '(.+?)' is already taken","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"system/src/Grav/Framework/Flex/Storage/FolderStorage.php","lineNumber":232,"sourceCode":"        $list = [];\n        foreach ($rows as $key => $row) {\n            $key = (string)$key;\n            $list[$key] = $this->saveRow($key, $row);\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param string $src\n     * @param string $dst\n     * @return bool\n     * @throws RuntimeException\n     */\n    public function copyRow(string $src, string $dst): bool\n    {\n        if ($this->hasKey($dst)) {\n            throw new RuntimeException(\"Cannot copy object: key '{$dst}' is already taken\");\n        }\n\n        if (!$this->hasKey($src)) {\n            return false;\n        }\n\n        $srcPath = $this->getStoragePath($src);\n        $dstPath = $this->getStoragePath($dst);\n        if (!$srcPath || !$dstPath) {\n            return false;\n        }\n\n        return $this->copyFolder($srcPath, $dstPath);\n    }\n\n    /**\n     * {@inheritdoc}\n     * @see FlexStorageInterface::renameRow()","sourceCodeStart":214,"sourceCodeEnd":250,"githubUrl":"https://github.com/getgrav/grav/blob/6040efed04efa69b8209448ed81308e7c24147c2/system/src/Grav/Framework/Flex/Storage/FolderStorage.php#L214-L250","documentation":"Error \"Cannot copy object: key '{$dst}' is already taken\" thrown in getgrav/grav.","triggerScenarios":"Thrown at system/src/Grav/Framework/Flex/Storage/FolderStorage.php:232 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"}