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
- Switch to a universally supported output codec (H.264/VP9 on Chrome, H.264 on Safari).
- Lower or adjust the output resolution/bitrate to values the encoder advertises as supported.
- Use a current Chrome/Edge version with WebCodecs enabled, or fall back to a server-side transcode.
- 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
- Default to H.264 output, which has the widest browser support.
- Query isConfigSupported for each candidate and disable unsupported ones in the UI.
- Keep Chrome/Edge updated for current WebCodecs encoder support.
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
- Could not get 2D canvas context
- "codec" must be a string
- Live streams are not currently supported by Remotion. Sorry!
- Streams with UNIX timestamps are not currently supported by
- Scale must be greater than 0
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/8ff2fc9c3e705a7d.
Report an issue: GitHub.