remotion-dev/remotion · error · Error

quality has been renamed to jpegQuality. Please rename the o

Error message

quality has been renamed to jpegQuality. Please rename the option.

What it means

renderMediaOnLambda throws immediately if options.quality is truthy, because the option was renamed to jpegQuality. This is a hard guard at the API boundary to force callers to migrate, since passing quality would otherwise be silently ignored.

Source

Thrown at packages/lambda-client/src/render-media-on-lambda.ts:242

/*
 * @description Kicks off a render process on Remotion Lambda. The progress can be tracked using getRenderProgress().
 * @see [Documentation](https://remotion.dev/docs/lambda/rendermediaonlambda)
 */
export const renderMediaOnLambda = (
	options: RenderMediaOnLambdaInput,
): Promise<RenderMediaOnLambdaOutput> => {
	if (
		Array.isArray(options.frameRange) &&
		Array.isArray(options.frameRange[0])
	) {
		throw new Error(
			'Multiple frame ranges are not supported on Lambda. Use renderMedia() locally to render multiple ranges.',
		);
	}

	if (options.quality) {
		throw new Error(
			'quality has been renamed to jpegQuality. Please rename the option.',
		);
	}

	return wrapped(renderMediaOnLambdaOptionalToRequired(options));
};

/**
 * @deprecated Renamed to renderMediaOnLambda()
 */
export const renderVideoOnLambda = renderMediaOnLambda;

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Rename the quality option to jpegQuality at every renderMediaOnLambda call site.
  2. Run a repo-wide search for 'quality' to find any remaining occurrences in render calls.
  3. Check the migration/release notes for the version you upgraded to.

Example fix

// before
await renderMediaOnLambda({ composition: 'Main', quality: 80 });

// after
await renderMediaOnLambda({ composition: 'Main', jpegQuality: 80 });
Defensive patterns

Strategy: type-guard

Validate before calling

// Strip renamed option and warn early
if ('quality' in opts) {
  console.warn('quality is renamed to jpegQuality');
  opts.jpegQuality = (opts as any).quality;
  delete (opts as any).quality;
}

Type guard

type HasRenamedQuality = { quality?: unknown };
const hasOldQuality = (o: unknown): o is HasRenamedQuality =>
  typeof o === 'object' && o !== null && 'quality' in o && (o as any).quality != null;

Prevention

When it happens

Trigger: Calling renderMediaOnLambda with a truthy options.quality value (any non-null/undefined/0/'' value).

Common situations: Upgrading @remotion/lambda across the version that renamed quality -> jpegQuality without updating call sites; copy-pasting an older example or tutorial; renaming only the type but not runtime usage.

Related errors


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