{"record":{"id":"55b925e1d565b574","repo":"remotion-dev/remotion","slug":"the-freeze-prop-of-sequence-must-be-a-number","errorCode":null,"errorMessage":"The \"freeze\" prop of <Sequence /> must be a number, but is of type ${typeof freeze}.","messagePattern":"The \"freeze\" prop of <Sequence /> must be a number, but is of type (.+?)\\.","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"packages/core/src/Sequence.tsx","lineNumber":256,"sourceCode":"\t\t\t`The \"trimBefore\" prop of <Sequence /> must be greater than or equal to 0, but got ${trimBefore}.`,\n\t\t);\n\t}\n\n\tif (Number.isNaN(trimBefore)) {\n\t\tthrow new TypeError(\n\t\t\t'The \"trimBefore\" prop of <Sequence /> must be a real number, but it is NaN.',\n\t\t);\n\t}\n\n\tif (!Number.isFinite(trimBefore)) {\n\t\tthrow new TypeError(\n\t\t\t`The \"trimBefore\" prop of <Sequence /> must be finite, but it is ${trimBefore}.`,\n\t\t);\n\t}\n\n\tif (typeof freeze !== 'undefined' && freeze !== null) {\n\t\tif (typeof freeze !== 'number') {\n\t\t\tthrow new TypeError(\n\t\t\t\t`The \"freeze\" prop of <Sequence /> must be a number, but is of type ${typeof freeze}.`,\n\t\t\t);\n\t\t}\n\n\t\tif (Number.isNaN(freeze)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`The \"freeze\" prop of <Sequence /> must be a real number, but it is NaN.`,\n\t\t\t);\n\t\t}\n\n\t\tif (!Number.isFinite(freeze)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`The \"freeze\" prop of <Sequence /> must be finite, but it is ${freeze}.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst absoluteFrame = useTimelinePosition();","sourceCodeStart":238,"sourceCodeEnd":274,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/Sequence.tsx#L238-L274","documentation":"Thrown when the freeze prop of <Sequence> is defined (not undefined/null) but is not a number. freeze pins playback at a specific frame, so a non-number makes the freeze point indeterminate.","triggerScenarios":"Passing freeze=\"10\" (string), freeze={true}, freeze={someObject}, or any non-number truthy value to <Sequence>.","commonSituations":"Loading freeze from config as a string; conditional freeze={condition} where condition is boolean instead of a frame number; mis-spelling a related prop.","solutions":["Pass a concrete frame number: freeze={30}.","Coerce when reading from external sources: freeze={Number(rawFreeze)}.","Omit freeze entirely when freezing is not desired, rather than passing a sentinel."],"exampleFix":"// before\n<Sequence freeze={config.freezeFrame} />\n\n// after\n<Sequence freeze={config.freezeFrame ? Number(config.freezeFrame) : undefined} />","handlingStrategy":"type-guard","validationCode":"const freeze = typeof rawFreeze === 'number' ? rawFreeze : undefined;","typeGuard":"const isFreezeFrame = (v: unknown): v is number =>\n  typeof v === 'number' && Number.isFinite(v);","tryCatchPattern":null,"preventionTips":["Pass freeze only when you actually want to pin a frame.","Avoid boolean or string sentinels for the freeze prop."],"tags":["sequence","freeze","props","validation"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}