remotion-dev/remotion · error · Error

No supported configs

Error message

No supported configs

What it means

Thrown by ConvertUi when the browser exposes no supported encoding configurations for the chosen output format. Remotion Convert queries WebCodecs `isConfigSupported` for the target codec/resolution/bitrate; if every candidate is rejected, supportedConfigs is null/undefined and conversion cannot proceed.

Source

Thrown at packages/convert/app/components/ConvertUi.tsx:324

				getFileSize,
				isFileSystemBacked,
				close,
			} = await makeWebFsTarget(filename, format.mimeType);

			const output = new Output({
				format,
				target: new StreamTarget(stream),
			});

			const duration = await getDurationOrCompute(input);
			waveform.setDuration(duration);

			let videoFrames = 0;

			const startTime = Date.now();

			if (!supportedConfigs) {
				throw new Error('No supported configs');
			}

			let stopped = false;
			setState({
				type: 'in-progress',
				onAbort: () => {
					setState({
						type: 'idle',
					});
					stopped = true;
				},
				state: progress,
				startTime,
				newName: filename,
			});
			const cursorProcessors: Array<{
				readonly dispose: () => Promise<void>;
			}> = [];

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Switch to a universally supported output codec (H.264/VP9 on Chrome, H.264 on Safari).
  2. Lower or adjust the output resolution/bitrate to values the encoder advertises as supported.
  3. Use a current Chrome/Edge version with WebCodecs enabled, or fall back to a server-side transcode.
  4. Query VideoEncoder.isConfigSupported up front and disable unsupported options in the UI.

Example fix

// before
const supportedConfigs = await findSupportedConfig(format);
// ...later:
if (!supportedConfigs) throw new Error('No supported configs');

// after
if (!supportedConfigs) {
  setState({type: 'unsupported', message: `Your browser cannot encode ${format.codec}. Try H.264 in Chrome.`});
  return;
}
Defensive patterns

Strategy: validation

Validate before calling

// probe support before offering the option
const support = await VideoEncoder.isConfigSupported({codec: 'avc1.42E01E', width: 1280, height: 720, bitrate: 2_000_000});
if (!support.supported) { disableOutputOption(format); }

Type guard

null

Try / catch

try {
  await run();
} catch (e) {
  if (e.message === 'No supported configs') {
    setState({type: 'unsupported', message: 'Browser cannot encode this format'});
  } else throw e;
}

Prevention

When it happens

Trigger: Selecting an output codec/resolution the browser's WebCodecs implementation cannot encode (e.g. AV1 on Safari, HEVC anywhere, or resolutions outside the encoder's caps). Fires at the start of the run() conversion after the supportedConfigs check.

Common situations: Using a codec the current browser lacks (Safari has no AV1 encoder, Chrome has no HEVC encoder); choosing dimensions outside the encoder's allowed range; outdated browser without WebCodecs; very high bitrates or unusual pixel formats rejected by isConfigSupported.

Related errors


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