{"record":{"id":"b866b9fb24de9aa6","repo":"remotion-dev/remotion","slug":"no-composition-with-the-id-compid-found","errorCode":null,"errorMessage":"No composition with the ID \"${compId}\" found.","messagePattern":"No composition with the ID \"(.+?)\" found\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/cli/src/benchmark.ts","lineNumber":419,"sourceCode":"\t\t\tcommandLine: parsedCli,\n\t\t}).value,\n\t\tonLog: RenderInternals.defaultOnLog,\n\t});\n\n\tconst ids = (\n\t\tremainingArgs[0]\n\t\t\t? String(remainingArgs[0])\n\t\t\t\t\t.split(',')\n\t\t\t\t\t.map((c) => c.trim())\n\t\t\t\t\t.filter(truthy)\n\t\t\t: await showMultiCompositionsPicker(comps, logLevel)\n\t) as string[];\n\n\tconst compositions = ids.map((compId) => {\n\t\tconst composition = comps.find((c) => c.id === compId);\n\n\t\tif (!composition) {\n\t\t\tthrow new Error(`No composition with the ID \"${compId}\" found.`);\n\t\t}\n\n\t\treturn composition;\n\t});\n\n\tif (compositions.length === 0) {\n\t\tLog.error(\n\t\t\t{indent: false, logLevel},\n\t\t\t'No composition IDs passed. Add another argument to the command specifying at least 1 composition ID.',\n\t\t);\n\t}\n\n\tconst benchmark: Record<string, Record<string, number[]>> = {};\n\n\tlet count = 1;\n\n\tconst x264Preset = x264Option.getValue({commandLine: parsedCli}).value;\n\tconst audioBitrate = audioBitrateOption.getValue({","sourceCodeStart":401,"sourceCodeEnd":437,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/cli/src/benchmark.ts#L401-L437","documentation":"Thrown by `remotion benchmark` after it collects the requested composition IDs (positional args or the multi-composition picker) and cannot find one of them in the compositions registered by the entry point. Each requested ID is matched exactly against `comps.find((c) => c.id === compId)`; a miss aborts the whole benchmark run.","triggerScenarios":"Running `remotion benchmark <entry> myComp,otherComp` where any ID in the comma-separated list is not a registered `<Composition id=\"...\">`. Also reachable through the interactive picker if the list was typed in manually and an ID is misspelled.","commonSituations":"Renaming a composition without updating benchmark scripts; passing the composition's display name or file name instead of its `id`; case mismatch (`MyComp` vs `mycomp`); stale copied IDs after refactoring.","solutions":["List available IDs with `remotion compositions <entry>` and copy the exact `id`.","Verify the ID spelling and casing against the `<Composition id=\"...\">` in the entry file.","Ensure the entry file passed to benchmark is the one that registers the composition you want."],"exampleFix":"// before\n$ remotion benchmark src/index.ts MyComposition\n// after (id is lowercase, as registered)\n$ remotion benchmark src/index.ts my-composition","handlingStrategy":"validation","validationCode":"// Resolve available IDs once, validate requested IDs against them.\nimport {getCompositions} from '@remotion/renderer';\nconst comps = await getCompositions(serveUrl, {inputProps});\nconst available = new Set(comps.map((c) => c.id));\nconst requested = ['myComp', 'otherComp'];\nconst missing = requested.filter((id) => !available.has(id));\nif (missing.length) {\n  throw new Error(`Unknown composition IDs: ${missing.join(', ')}`);\n}","typeGuard":"const isKnownComposition = (id: string, comps: {id: string}[]): boolean =>\n  comps.some((c) => c.id === id);","tryCatchPattern":null,"preventionTips":["Source composition IDs from the same entry file you pass to benchmark.","Add a preflight that lists compositions (`remotion compositions <entry>`) before benchmarking."],"tags":["cli","benchmark","composition","validation"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}