remotion-dev/remotion · error · Error
No output files found in the config file.
Error message
No output files found in the config file.
What it means
Thrown by prepareConfigFile when esbuild completed with zero errors but produced no outputFiles. This is an internal invariant failure: a successful build with write:false should always emit at least one output artifact.
Source
Thrown at packages/cli/src/load-config.ts:49
entryPoints: [resolved],
tsconfig: isJavascript ? undefined : tsconfigJson,
absWorkingDir: remotionRoot,
outfile: virtualOutfile,
write: false,
packages: 'external',
});
if (result.errors.length > 0) {
throw new Error(
`Error in remotion.config.ts file: ${result.errors
.map((error) => error.text)
.join('\n')}`,
);
}
const firstOutfile = result.outputFiles[0];
if (!firstOutfile) {
throw new Error('No output files found in the config file.');
}
const code = new TextDecoder().decode(firstOutfile.contents);
return {code, remotionRoot, resolved};
};
export const executeConfigFile = ({code, remotionRoot}: PreparedConfigFile) => {
let str = code;
const currentCwd = process.cwd();
// The config file is always executed from the Remotion root, if `process.cwd()` is being used. We cannot enforce this in worker threads used for testing
if (isMainThread) {
process.chdir(remotionRoot);
}
if (process.env.PATCH_BUN_DEVELOPMENT) {
str = str.replace('@remotion/cli/config', './config');View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Ensure remotion.config.ts has at least one statement (an empty file can produce no output).
- Reinstall node_modules to reset esbuild: `rm -rf node_modules && bun install`.
- Upgrade @remotion/cli and @remotion/bundler to matching versions (`npx remotion upgrade`).
- If it persists, file a Remotion issue with the config file and esbuild version.
Example fix
// before: empty remotion.config.ts
// after: add at least one config statement
import {Config} from '@remotion/cli/config';
Config.setVideoImageFormat('jpeg'); Defensive patterns
Strategy: validation
Validate before calling
import {readFileSync} from 'node:fs';
const ensureNonEmptyConfig = (configPath: string) => {
const content = readFileSync(configPath, 'utf8').trim();
if (content.length === 0) {
throw new Error('remotion.config.ts is empty - add at least one Config statement.');
}
};
ensureNonEmptyConfig(configPath); Prevention
- Keep at least one Config.* call in remotion.config.ts.
- Reinstall node_modules if you suspect a corrupted esbuild.
- Keep @remotion/cli and @remotion/bundler versions aligned.
When it happens
Trigger: An esbuild configuration that suppresses output (extremely unusual given the fixed options passed); an esbuild version incompatibility; an empty entry file that esbuild trims to nothing under specific flags.
Common situations: Rarely hit in practice; usually indicates a corrupted esbuild install, an outdated @remotion/bundler, or an esbuild downgrade. May also occur if remotion.config.ts is empty and esbuild emits nothing under the configured options.
Related errors
- Error in remotion.config.ts file: ${result.errors .map((
- Image format mismatch: ${downloadName} was given as the down
- Image format mismatch: ${outName} was given as the ${outName
- ${result.file} was chosen as the entry point (reason = ${res
- Cannot find composition with ID "${compNameResult.compName}"
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/c39c28dfcf54dc1f.
Report an issue: GitHub.