{"record":{"id":"9e8c880f5ef614ab","repo":"remotion-dev/remotion","slug":"no-packages-were-specified","errorCode":null,"errorMessage":"No packages were specified","messagePattern":"No packages were specified","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/browser-studio/src/browser-studio-operations.ts","lineNumber":1245,"sourceCode":"\t\t\t\t\tfileName: edit.fileName,\n\t\t\t\t\tsequenceNodePath: edit.sequenceNodePath,\n\t\t\t\t\tstatus: getEffectStatus({\n\t\t\t\t\t\teffectIndex: edit.effectIndex,\n\t\t\t\t\t\tfileName: edit.fileName,\n\t\t\t\t\t\tproject: nextProject,\n\t\t\t\t\t\tschema: edit.schema,\n\t\t\t\t\t\tsequenceNodePath: edit.sequenceNodePath,\n\t\t\t\t\t}),\n\t\t\t\t})),\n\t\t\t};\n\t\t},\n\t};\n\n\tconst packageInstallation: BrowserStudioPackageInstallationOperations = {\n\t\tinstallPackages: async ({dependencies}) => {\n\t\t\ttry {\n\t\t\t\tif (dependencies.length === 0) {\n\t\t\t\t\tthrow new Error('No packages were specified');\n\t\t\t\t}\n\n\t\t\t\tconst installedDependencies =\n\t\t\t\t\tawait resolveElementDependencies(dependencies);\n\t\t\t\tconst project = getProject();\n\t\t\t\tconst nextProject = addDependenciesToProject({\n\t\t\t\t\tdependencies: installedDependencies,\n\t\t\t\t\tproject,\n\t\t\t\t});\n\t\t\t\tcontroller.applyMutation({\n\t\t\t\t\ttimelineSelection: null,\n\t\t\t\t\tfileName: 'Install packages',\n\t\t\t\t\tmutate: () => nextProject,\n\t\t\t\t\tnodePathMutationFiles: null,\n\t\t\t\t});\n\n\t\t\t\treturn {success: true};\n\t\t\t} catch (error) {","sourceCodeStart":1227,"sourceCodeEnd":1263,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/browser-studio/src/browser-studio-operations.ts#L1227-L1263","documentation":"installPackages guards against empty dependency lists: an empty dependencies array throws 'No packages were specified', converted by the surrounding try/catch into a structured error result.","triggerScenarios":"Calling packageInstallation.installPackages({dependencies: []}) — e.g. an install flow where dependency detection found nothing to install but the call was still made.","commonSituations":"Element install flows whose dependency scan returned an empty list; UI buttons that unconditionally trigger install after a failed scan.","solutions":["Check dependencies.length > 0 before calling installPackages.","Skip the install step entirely when dependency detection returns nothing.","Treat an empty dependency list as success in the calling flow rather than calling the operation."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (dependencies.length > 0) {\n  const result = await operations.packageInstallation.installPackages({dependencies});\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Skip install entirely when the dependency scan returns an empty list.","Consider an empty dependency list a no-op success in the calling flow."],"tags":["packages","dependency-resolution","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-14T05:17:10.506Z"}