{"record":{"id":"06f72aa5618ba687","repo":"remotion-dev/remotion","slug":"weird-size-for-number-size","errorCode":null,"errorMessage":"Weird size for number ${size}","messagePattern":"Weird size for number (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/media-parser/src/containers/iso-base-media/meta/ilst.ts","lineNumber":59,"sourceCode":"\t\t}\n\n\t\tif (size === 2) {\n\t\t\treturn {type: 'number', value: iterator.getInt16()};\n\t\t}\n\n\t\tif (size === 3) {\n\t\t\treturn {type: 'number', value: iterator.getInt24()};\n\t\t}\n\n\t\tif (size === 4) {\n\t\t\treturn {type: 'number', value: iterator.getInt32()};\n\t\t}\n\n\t\tif (size === 8) {\n\t\t\treturn {type: 'number', value: Number(iterator.getInt64())};\n\t\t}\n\n\t\tthrow new Error(`Weird size for number ${size}`);\n\t}\n\n\tif (wellKnownType === 22) {\n\t\tif (size === 1) {\n\t\t\treturn {type: 'number', value: iterator.getUint8()};\n\t\t}\n\n\t\tif (size === 2) {\n\t\t\treturn {type: 'number', value: iterator.getUint16()};\n\t\t}\n\n\t\tif (size === 3) {\n\t\t\treturn {type: 'number', value: iterator.getUint24()};\n\t\t}\n\n\t\tif (size === 4) {\n\t\t\treturn {type: 'number', value: iterator.getUint32()};\n\t\t}","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/iso-base-media/meta/ilst.ts#L41-L77","documentation":"Thrown in the ilst (iTunes metadata) parser for well-known type 21 (signed integer). The value's byte size is not one of {1,2,3,4,8}, so no matching signed integer reader exists. The parser refuses to guess the integer width and aborts.","triggerScenarios":"parseMedia({src}) on an MP4/M4A/MOV whose ilst atom contains a type-21 (signed integer) metadata value with a non-standard size (not 1/2/3/4/8 bytes). Usually a corrupt or hand-edited metadata atom.","commonSituations":"M4A files with damaged iTunes tags; files whose metadata was rewritten by a buggy tagger; non-Apple muxers emitting malformed ilst numbers.","solutions":["Strip/rebuild iTunes metadata: ffmpeg -i in.m4a -map_metadata -1 -c copy out.m4a, then re-tag with a compliant tool.","Re-mux: ffmpeg -i in.m4a -c copy out.m4a.","Use a tag editor (Kid3/mp3tag) to repair or remove the offending tag, then parse.","Migrate to @remotion/mediabunny (parseMedia is deprecated)."],"exampleFix":"// before\nconst {metadata} = await parseMedia({src: taggedM4a, reader: nodeReader});\n\n// after\ntry {\n  const {metadata} = await parseMedia({src: taggedM4a, reader: nodeReader});\n} catch (err) {\n  if (err instanceof Error && /Weird size for number/.test(err.message)) {\n    // ilst metadata atom corrupt — strip metadata and re-mux\n    // ffmpeg -i taggedM4a -map_metadata -1 -c copy out.m4a\n  } else throw err;\n}","handlingStrategy":"try-catch","validationCode":"// iTunes metadata is non-essential; pre-check by re-muxing without metadata\n// only if you know you don't need it. Quick validation:\n//   ffprobe -v error -show_entries format_tags -of json in.m4a\nimport {execFileSync} from 'node:child_process';\nfunction metadataParses(file: string): boolean {\n  try {\n    execFileSync('ffprobe', ['-v','error','-show_entries','format_tags','-of','json', file], {encoding:'utf8', stdio:'pipe'});\n    return true;\n  } catch { return false; }\n}","typeGuard":"// ilst values are deep binary metadata; not type-guardable from the caller.\n// => typeGuard: null","tryCatchPattern":"try {\n  const {metadata} = await parseMedia({src, reader: nodeReader});\n} catch (err) {\n  if (err instanceof Error && /Weird size for number/.test(err.message)) {\n    // type-21 signed-integer ilst entry corrupt; strip metadata and re-mux\n  } else {\n    throw err;\n  }\n}","preventionTips":["Strip/rebuild iTunes metadata with ffmpeg -map_metadata -1 when tags are untrusted.","Repair tags with a compliant tag editor (Kid3/mp3tag).","Migrate to @remotion/mediabunny (parseMedia is deprecated).","Keep a try/catch around parseMedia() for files that may carry damaged tags."],"tags":["mp4","iso-base-media","media-parser","ilst","metadata","corrupt-file","itunes"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}