{"record":{"id":"f421a7e7ba95d4f4","repo":"remotion-dev/remotion","slug":"no-effects-were-specified-for-duplication","errorCode":null,"errorMessage":"No effects were specified for duplication","messagePattern":"No effects were specified for duplication","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/browser-studio/src/browser-studio-operations.ts","lineNumber":987,"sourceCode":"\t\t\t\t\t\t\t...project.files,\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\tupdates.map((update) => [\n\t\t\t\t\t\t\t\t\tupdate.absolutePath,\n\t\t\t\t\t\t\t\t\tupdate.result.output,\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn {success: true};\n\t\t\t} catch (error) {\n\t\t\t\treturn getStructuredError(error);\n\t\t\t}\n\t\t},\n\t\tduplicateEffects: async (request) => {\n\t\t\ttry {\n\t\t\t\tif (request.length === 0) {\n\t\t\t\t\tthrow new Error('No effects were specified for duplication');\n\t\t\t\t}\n\n\t\t\t\tconst project = getProject();\n\t\t\t\tconst groups = new Map<\n\t\t\t\t\tstring,\n\t\t\t\t\tArray<{\n\t\t\t\t\t\teffectIndex: number;\n\t\t\t\t\t\tsequenceNodePath: SequenceNodePath;\n\t\t\t\t\t}>\n\t\t\t\t>();\n\t\t\t\tfor (const item of request) {\n\t\t\t\t\tconst absolutePath = findProjectFile({\n\t\t\t\t\t\tfilePath: item.fileName,\n\t\t\t\t\t\tproject,\n\t\t\t\t\t});\n\t\t\t\t\tconst group = groups.get(absolutePath) ?? [];\n\t\t\t\t\tgroup.push({\n\t\t\t\t\t\teffectIndex: item.effectIndex,","sourceCodeStart":969,"sourceCodeEnd":1005,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/browser-studio/src/browser-studio-operations.ts#L969-L1005","documentation":"duplicateEffects guards against no-op requests the same way as deleteEffects: an empty request array throws 'No effects were specified for duplication', which the surrounding try/catch converts into a structured error result returned to the caller.","triggerScenarios":"Calling effectOperations.duplicateEffects([]) — e.g. a duplicate action whose target list was emptied by filtering or deselection before the request was built.","commonSituations":"Copy/paste flows where the clipboard selection resolved to zero effects; UI state bugs that build the request from a stale, now-empty selection.","solutions":["Check request.length > 0 before calling duplicateEffects.","Verify the selection state that builds the duplication request.","Disable the duplicate action when nothing is selected."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (request.length > 0) {\n  const result = await operations.effect.duplicateEffects(request);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Recompute the duplication target list right before the call.","Disable duplicate actions when the selection is empty."],"tags":["effects","validation","no-op"],"backgroundTag":"empty-request-rejected","analyzedSha":"b2f4e34732f3c6c222ea029413e22dc402218cd7","analyzedAt":"2026-08-22T21:45:17.748Z","contentChangedAt":"2026-08-22T21:45:17.748Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}