{"record":{"id":"67834e87047c69c7","repo":"remotion-dev/remotion","slug":"expected-cuetime","errorCode":null,"errorMessage":"Expected CueTime","messagePattern":"Expected CueTime","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/media-parser/src/containers/webm/seek/format-cues.ts","lineNumber":23,"sourceCode":"\ttimeInTimescale: number;\n\tclusterPositionInSegment: number;\n\trelativePosition: number;\n};\n\nexport const formatCues = (cues: PossibleEbml[]) => {\n\tconst matroskaCues: MatroskaCue[] = [];\n\tfor (const cue of cues) {\n\t\tif (cue.type === 'Crc32') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (cue.type !== 'CuePoint') {\n\t\t\tthrow new Error('Expected CuePoint');\n\t\t}\n\n\t\tconst cueTime = cue.value.find((_cue) => _cue.type === 'CueTime');\n\t\tif (!cueTime) {\n\t\t\tthrow new Error('Expected CueTime');\n\t\t}\n\n\t\tconst cueTrackPositions = cue.value.find(\n\t\t\t(c) => c.type === 'CueTrackPositions',\n\t\t);\n\t\tif (!cueTrackPositions) {\n\t\t\tthrow new Error('Expected CueTrackPositions');\n\t\t}\n\n\t\tconst cueTimeValue = cueTime.value.value;\n\t\tconst cueTrack = cueTrackPositions.value.find(\n\t\t\t(_c) => _c.type === 'CueTrack',\n\t\t);\n\t\tif (!cueTrack) {\n\t\t\tthrow new Error('Expected CueTrack');\n\t\t}\n\n\t\tconst cueClusterPosition = cueTrackPositions.value.find(","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/webm/seek/format-cues.ts#L5-L41","documentation":"A CuePoint element in the Cues table has no CueTime child. formatCues requires CueTime to compute the cue's timestamp, so its absence means the cue entry is incomplete and unusable for seeking.","triggerScenarios":"Parsing the Cues section of a file whose CuePoint entries omit CueTime - typically a partially written or corrupted seek table.","commonSituations":"Live muxers that emit incomplete Cues, files truncated during the Cues section, or binary corruption of element IDs.","solutions":["Re-mux the file to regenerate a complete Cues table.","Ensure the source file is fully written before parsing.","Use a different source.","Try Mediabunny."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await parseMedia({src: 'in.mkv', fields: {durationInSeconds: true}});\n} catch (err) {\n  if (err instanceof Error && /Expected CueTime/.test(err.message)) {\n    throw new Error('Incomplete Cues entries; re-mux the file.', {cause: err});\n  }\n  throw err;\n}","preventionTips":["Re-mux to regenerate complete Cues entries.","Finalize live recordings before parsing.","Use a fallback source on Cues errors."],"tags":["webm","matroska","media-parser","cues","seek","malformed-file"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}