remotion-dev/remotion · error · Error

Failed to upgrade Remotion, run with --log=info info to see

Error message

Failed to upgrade Remotion, run with --log=info info to see logs

What it means

Thrown by the upgrade command when the spawned package manager exits non-zero AND the log level is above 'info' (e.g. warn/error), so stdio was 'ignore' and the installer's output was suppressed. Because no logs were shown, the message tells you to re-run with --log=info to see them.

Source

Thrown at packages/cli/src/upgrade.ts:295

	const task = spawn(manager, command, {
		env: {
			...process.env,
			ADBLOCK: '1',
			DISABLE_OPENCOLLECTIVE: '1',
		},
		stdio: RenderInternals.isEqualOrBelowLogLevel(logLevel, 'info')
			? 'inherit'
			: 'ignore',
	});

	await new Promise<void>((resolve) => {
		task.on('close', (code) => {
			if (code === 0) {
				resolve();
			} else if (RenderInternals.isEqualOrBelowLogLevel(logLevel, 'info')) {
				throw new Error('Failed to upgrade Remotion, see logs above');
			} else {
				throw new Error(
					'Failed to upgrade Remotion, run with --log=info info to see logs',
				);
			}
		});
	});
};

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Re-run with verbose logs: `npx remotion upgrade --log=info`.
  2. Once the installer error is visible, follow the same steps as for error 116.
  3. If running in CI, temporarily set --log=info to capture the cause.

Example fix

// before
$ npx remotion upgrade --log=warn
Failed to upgrade Remotion, run with --log=info info to see logs
// after
$ npx remotion upgrade --log=info
Defensive patterns

Strategy: try-catch

Validate before calling

const shouldRunVerbose = (logLevel: string) => {
  if (!['info', 'verbose'].includes(logLevel)) {
    throw new Error('Run `remotion upgrade` with --log=info to capture installer output on failure');
  }
};

shouldRunVerbose(currentLogLevel);

Try / catch

try {
  await upgradeCli({logLevel: 'info'});
} catch (err) {
  if (err instanceof Error && err.message.includes('run with --log=info')) {
    // retry with verbose logs to capture root cause
    await upgradeCli({logLevel: 'info'});
  }
  throw err;
}

Prevention

When it happens

Trigger: Same underlying failure as error 116 (installer non-zero exit) but the command was invoked with a quiet log level such as `--log=warn` or `--log=error`, hiding the installer output.

Common situations: CI pipelines or scripts that set --log=warn to reduce noise, then cannot diagnose an upgrade failure; default-log users who muted output.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/59fbcb9b1437bc42. Report an issue: GitHub.