getgrav/grav · error · RuntimeException
Changing page template failed: {$oldFilepath} => {$newFilepa
Error message
Changing page template failed: {$oldFilepath} => {$newFilepath} What it means
Error "Changing page template failed: {$oldFilepath} => {$newFilepath}" thrown in getgrav/grav.
Source
Thrown at system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php:433
$debugger->addMessage("Page moved: {$oldFolder} => {$newFolder}", 'debug');
}
}
// Check if filename has changed.
if ($oldFilename !== $newFilename) {
// Get instance of the old file (we have already copied/moved it).
$oldFilepath = "{$newFolder}/{$oldFilename}";
$file = $this->getFile($oldFilepath);
// Rename the file if we aren't supposed to clone it.
$isClone = $row['__META']['clone'] ?? false;
if (!$isClone && $file->exists()) {
/** @var UniformResourceLocator $locator */
$locator = $grav['locator'];
$toPath = $locator->isStream($newFilepath) ? $locator->findResource($newFilepath, true, true) : GRAV_ROOT . "/{$newFilepath}";
$success = $file->rename($toPath);
if (!$success) {
throw new RuntimeException("Changing page template failed: {$oldFilepath} => {$newFilepath}");
}
$debugger->addMessage("Page template changed: {$oldFilename} => {$newFilename}", 'debug');
} else {
$file = null;
$debugger->addMessage("Page template created: {$newFilename}", 'debug');
}
}
}
// Clean up the data to be saved.
$this->prepareRow($row);
unset($row['__META'], $row['__ERROR']);
if (!isset($file)) {
$file = $this->getFile($newFilepath);
}
// Compare existing file content to the new one and save the file only if content has been changed.View on GitHub (pinned to 6040efed04)
When it happens
Trigger: Thrown at system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php:433 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/74b837a63dbc09a7.
Report an issue: GitHub.