{"record":{"id":"8041b981afc7f58a","repo":"remotion-dev/remotion","slug":"unknown-wav-box-type-type","errorCode":null,"errorMessage":"Unknown WAV box type ${type}","messagePattern":"Unknown WAV box type (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/media-parser/src/containers/wav/parse-wav.ts","lineNumber":56,"sourceCode":"\t}\n\n\tif (type === 'id3') {\n\t\treturn parseId3({state});\n\t}\n\n\tif (type === 'junk' || type === 'fllr' || type === 'bext' || type === 'cue') {\n\t\treturn parseJunk({state});\n\t}\n\n\tif (type === 'fact') {\n\t\treturn parseFact({state});\n\t}\n\n\tif (type === '\\u0000') {\n\t\treturn Promise.resolve(null);\n\t}\n\n\tthrow new Error(`Unknown WAV box type ${type}`);\n};\n","sourceCodeStart":38,"sourceCodeEnd":58,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/wav/parse-wav.ts#L38-L58","documentation":"parseWav dispatches on the 4-byte chunk FourCC and recognizes only riff, fmt, data, list, id3, junk, fllr, bext, cue, fact, and NUL. Any other chunk type is rejected rather than skipped, so an otherwise-valid WAV carrying an unknown chunk will fail the whole parse.","triggerScenarios":"A WAV containing a chunk FourCC outside the known set: 'ds64' (RF64), 'PEAK', 'smpl', 'inst', 'plst', vendor-specific chunks, or a corrupted FourCC from byte damage.","commonSituations":"Broadcast WAVs (bext/PEAK); RF64 files; DAW metadata chunks; corrupted chunk headers.","solutions":["Strip non-essential chunks: ffmpeg -i in.wav -map_metadata -1 -c copy out.wav.","Identify the offending chunk in a hex editor.","Use Mediabunny, which skips unknown chunks; try/catch parseMedia()."],"exampleFix":"# drop metadata/unknown chunks, keep audio\nffmpeg -i in.wav -map_metadata -1 -c:a copy out.wav\n\nawait parseMedia({ src: 'out.wav' });","handlingStrategy":"try-catch","validationCode":"// ffprobe tolerates unknown chunks; if ffprobe loads it but parseMedia doesn't,\n// strip metadata chunks: ffmpeg -i in.wav -map_metadata -1 -c copy out.wav","typeGuard":null,"tryCatchPattern":"try {\n  await parseMedia({ src: 'in.wav' });\n} catch (err) {\n  if (err instanceof Error && /Unknown WAV box type/i.test(err.message)) {\n    // strip unknown chunks and retry, or use Mediabunny\n  } else throw err;\n}","preventionTips":["Strip non-essential WAV chunks with ffmpeg before parsing.","Use Mediabunny, which skips unknown chunks.","Avoid broadcast/RF64 WAVs with parseMedia()."],"tags":["wav","media-parser","unsupported-format","container","metadata"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}