{"record":{"id":"b1e5904a6271edf8","repo":"remotion-dev/remotion","slug":"unsupported-fcctype-fcctype","errorCode":null,"errorMessage":"Unsupported fccType: ${fccType}","messagePattern":"Unsupported fccType: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/media-parser/src/containers/riff/parse-strf.ts","lineNumber":89,"sourceCode":"\nexport const parseStrf = ({\n\titerator,\n\tsize,\n\tfccType,\n}: {\n\titerator: BufferIterator;\n\tsize: number;\n\tfccType: FccType;\n}): StrfBoxAudio | StrfBoxVideo => {\n\tif (fccType === 'vids') {\n\t\treturn parseStrfVideo({iterator, size});\n\t}\n\n\tif (fccType === 'auds') {\n\t\treturn parseStrfAudio({iterator, size});\n\t}\n\n\tthrow new Error(`Unsupported fccType: ${fccType}`);\n};\n","sourceCodeStart":71,"sourceCodeEnd":91,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/riff/parse-strf.ts#L71-L91","documentation":"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.","triggerScenarios":"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.","commonSituations":"Edge-case AVI with auxiliary stream chunks; an internal bug where parseStrf is invoked with an unexpected fccType; corrupt strh/strf pairing.","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."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Ensure fccType is vids/auds before invoking parseStrf (parseStrh already gates this).\nfunction isSupportedFccType(t: string): boolean {\n  return t === 'vids' || t === 'auds';\n}","typeGuard":"type FccTypeSupported = 'vids' | 'auds';\nfunction isSupportedFccType(t: string): t is FccTypeSupported {\n  return t === 'vids' || t === 'auds';\n}","tryCatchPattern":"try {\n  const strf = parseStrf({iterator, size, fccType});\n} catch (err) {\n  if (err instanceof Error && err.message.startsWith('Unsupported fccType')) {\n    // skip this stream chunk\n  } else throw err;\n}","preventionTips":["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."],"tags":["riff","avi","stream-type","strf","media-parser"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}