{"record":{"id":"19036ba52d3ce434","repo":"remotion-dev/remotion","slug":"browser-studio-vendor-entry-was-not-generated-19036b","errorCode":null,"errorMessage":"Browser Studio vendor entry was not generated","messagePattern":"Browser Studio vendor entry was not generated","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/browser-studio/src/dev/server.ts","lineNumber":102,"sourceCode":"\t\tentrypoints: ['src/browser-studio-vendor-entry.ts'],\n\t\texternal: ['@huggingface/transformers'],\n\t\tformat: 'iife',\n\t\tnaming: '[name].mjs',\n\t\toutdir: outDir,\n\t\tsourcemap: 'linked',\n\t\ttarget: 'browser',\n\t});\n\n\tif (!vendorOutput.success) {\n\t\tprocess.stderr.write(`${vendorOutput.logs.join('\\n')}\\n`);\n\t\tprocess.exit(1);\n\t}\n\n\tconst vendorEntryArtifact = vendorOutput.outputs.find(\n\t\t(file) => path.basename(file.path) === 'browser-studio-vendor-entry.mjs',\n\t);\n\tif (!vendorEntryArtifact) {\n\t\tthrow new Error('Browser Studio vendor entry was not generated');\n\t}\n\n\tconst transformersOutput = await build({\n\t\tentrypoints: ['src/browser-studio-transformers-entry.ts'],\n\t\tformat: 'esm',\n\t\tnaming: '[name].mjs',\n\t\toutdir: outDir,\n\t\tsourcemap: 'linked',\n\t\ttarget: 'browser',\n\t});\n\n\tif (!transformersOutput.success) {\n\t\tprocess.stderr.write(`${transformersOutput.logs.join('\\n')}\\n`);\n\t\tprocess.exit(1);\n\t}\n\n\tconst browserStudioAssetSizes = {\n\t\trspackWasm: Bun.file(","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/browser-studio/src/dev/server.ts#L84-L120","documentation":"The Browser Studio dev server's buildDevAssets step bundles the vendor chunk and expects an output artifact named 'browser-studio-vendor-entry.mjs'. If the bundler produced no output with that basename, the dev server cannot serve the vendor entry and throws. This mirrors the same invariant as the production bundle script.","triggerScenarios":"Starting the Browser Studio dev server when the vendor build yields no artifact named browser-studio-vendor-entry.mjs — renamed entrypoint, changed naming convention, or failing/stale vendor build.","commonSituations":"Local development after refactoring the dev server build pipeline; Bun version upgrades changing output naming; corrupted dev cache.","solutions":["Confirm the vendor build() uses naming: '[name].mjs' and emits browser-studio-vendor-entry.mjs","Log vendorOutput.outputs to see actual names and fix the lookup or the naming config","Delete build/dev cache directories and restart the dev server","Verify the vendor entrypoint file exists and builds without errors"],"exampleFix":"// before\nconst vendorEntryArtifact = vendorOutput.outputs.find(\n\t(file) => path.basename(file.path) === 'browser-studio-vendor-entry.mjs',\n);\n// after (debug)\nconsole.log(vendorOutput.outputs.map((o) => o.path));\nconst vendorEntryArtifact = vendorOutput.outputs.find(\n\t(file) => path.basename(file.path) === 'browser-studio-vendor-entry.mjs',\n);","handlingStrategy":"try-catch","validationCode":"if (!vendorOutput.outputs.some((f) => path.basename(f.path) === 'browser-studio-vendor-entry.mjs')) {\n\tconsole.error('missing vendor entry; outputs:', vendorOutput.outputs.map((o) => o.path));\n}","typeGuard":"const isVendorEntry = (f: {path: string}) =>\n\tpath.basename(f.path) === 'browser-studio-vendor-entry.mjs';","tryCatchPattern":"try {\n\tawait buildDevAssets(...);\n} catch (err) {\n\tif ((err as Error).message.includes('vendor entry was not generated')) {\n\t\tawait cleanDevCache();\n\t\tawait restartDevServer();\n\t} else throw err;\n}","preventionTips":["Keep dev and production bundle scripts using identical naming conventions","Clear the dev cache after bundler upgrades","Log build outputs when refactoring the dev asset pipeline"],"tags":["bundler","dev-server","internal-invariant"],"backgroundTag":"internal-invariant-violation","analyzedSha":"b2f4e34732f3c6c222ea029413e22dc402218cd7","analyzedAt":"2026-09-09T13:27:51.281Z","contentChangedAt":"2026-09-09T13:27:51.281Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}