remotion-dev/remotion · error · Error
Could not find folder "${codemod.folderName}"
Error message
Could not find folder "${codemod.folderName}" What it means
resolveCodemodTargetFile handles rename-folder and delete-folder codemods by resolving the folder to a file via getFolderFile({folderName, project}). If no file in the VirtualProject declares that folder, the lookup returns null and this error is thrown with the folder name in quotes.
Source
Thrown at packages/browser-studio/src/browser-studio-operations.ts:277
}
const compositionId = getCodemodTargetCompositionId(codemod);
if (compositionId !== null) {
const compositionFile = getCompositionFile({compositionId, project});
if (compositionFile === null) {
throw new Error(`Could not find composition "${compositionId}"`);
}
return findProjectFile({filePath: compositionFile, project});
}
if (codemod.type === 'rename-folder' || codemod.type === 'delete-folder') {
const folderFile = getFolderFile({
folderName: codemod.folderName,
project,
});
if (folderFile === null) {
throw new Error(`Could not find folder "${codemod.folderName}"`);
}
return findProjectFile({filePath: folderFile, project});
}
if (
codemod.type === 'move-composition-or-folder' &&
codemod.source.type === 'folder'
) {
const folderFile = getFolderFile({
folderName: codemod.source.folderName,
project,
});
if (folderFile === null) {
throw new Error(`Could not find folder "${codemod.source.folderName}"`);
}
return findProjectFile({filePath: folderFile, project});View on GitHub (pinned to b2f4e34732)
Solutions
- Refresh the folder list from the current project before issuing rename/delete-folder codemods.
- Drop queued folder codemods when the project prop changes underneath you.
- Pass symbolicatedStack with originalFileName when the target file is known.
Defensive patterns
Strategy: validation
Validate before calling
const folderExists = (project: VirtualProject, folderName: string): boolean =>
Object.values(project.files).some((source) =>
source.includes(`folderName={"${folderName}"}`) ||
source.includes(`folderName="${folderName}"`),
);
if (codemod.type === 'rename-folder' && !folderExists(project, codemod.folderName)) {
// refresh folder list from the current project and rebuild the codemod
} Type guard
const isFolderCodemod = (
codemod: RecastCodemod,
): codemod is
| {type: 'rename-folder'; folderName: string}
| {type: 'delete-folder'; folderName: string} =>
codemod.type === 'rename-folder' || codemod.type === 'delete-folder'; Prevention
- Derive the folder tree from the live project, not cached UI state.
- Drop queued folder codemods whenever the incoming project prop changes.
- Refresh after undo/redo before allowing folder operations.
When it happens
Trigger: applyCodemod with a codemod of type 'rename-folder' or 'delete-folder' whose codemod.folderName does not exist in the current project (no symbolicatedStack.originalFileName override).
Common situations: Renaming or deleting a folder that was already removed/renamed by another edit; stale folder tree in the UI after an undo or an external project replacement; folder names captured from an older project snapshot.
Related errors
- Could not find composition "${compositionId}"
- Could not find folder "${folderPath}"
- A folder cannot be moved inside itself
- Could not find target folder
- Could not find the root file of the project
AI-assisted analysis of remotion-dev/remotion@b2f4e34732 (2026-08-22).
Data as JSON: /api/errors/eaaf1c6eaf7171f9.
Report an issue: GitHub.