remotion-dev/remotion · error
Unsupported fccType: ${fccType}
Error message
Unsupported fccType: ${fccType} What it means
Thrown by parseStrf() when the fccType argument is neither 'vids' nor 'auds'. parseStrf only has branches for video and audio stream-format chunks; any other fccType (e.g. 'txts', 'mids') is rejected. This is the strf-level mirror of error 1390.
Source
Thrown at packages/media-parser/src/containers/riff/parse-strf.ts:89
export const parseStrf = ({
iterator,
size,
fccType,
}: {
iterator: BufferIterator;
size: number;
fccType: FccType;
}): StrfBoxAudio | StrfBoxVideo => {
if (fccType === 'vids') {
return parseStrfVideo({iterator, size});
}
if (fccType === 'auds') {
return parseStrfAudio({iterator, size});
}
throw new Error(`Unsupported fccType: ${fccType}`);
};
View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Filter the AVI to keep only video/audio streams: ffmpeg -i in.avi -map 0:v -map 0:a -c copy out.avi
- Transcode to MP4 to avoid the AVI stream-type parsing path entirely.
- Report the file if it reaches this throw after a clean strh parse, since strh should have rejected the fccType first.
Defensive patterns
Strategy: try-catch
Validate before calling
// Ensure fccType is vids/auds before invoking parseStrf (parseStrh already gates this).
function isSupportedFccType(t: string): boolean {
return t === 'vids' || t === 'auds';
} Type guard
type FccTypeSupported = 'vids' | 'auds';
function isSupportedFccType(t: string): t is FccTypeSupported {
return t === 'vids' || t === 'auds';
} Try / catch
try {
const strf = parseStrf({iterator, size, fccType});
} catch (err) {
if (err instanceof Error && err.message.startsWith('Unsupported fccType')) {
// skip this stream chunk
} else throw err;
} Prevention
- Only call parseStrf for 'vids'/'auds' streams.
- Keep parseStrh's fccType gate intact so parseStrf is never called with other values.
- Report files that reach this throw after a clean strh parse — it may indicate a parser bug.
When it happens
Trigger: Called from parseStrh() for a stream whose fccType is not 'vids'/'auds'. Since parseStrh() already rejects fccType not in {vids, auds}, reaching 1391 indicates the dispatcher was bypassed or fccType was mutated between the two checks.
Common situations: Edge-case AVI with auxiliary stream chunks; an internal bug where parseStrf is invoked with an unexpected fccType; corrupt strh/strf pairing.
Related errors
- Unsupported track type ${strh.fccType}
- Not a RIFF file
- File type ${fileType} not supported
- Unsupported audio format ${strf.formatTag}
- Unsupported video codec ${strh.handler}
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/b1e5904a6271edf8.
Report an issue: GitHub.