remotion-dev/remotion · error · Error
The <Freeze /> component requires a 'frame' prop, but none w
Error message
The <Freeze /> component requires a 'frame' prop, but none was passed.
What it means
Thrown by the <Freeze /> component when the `frame` prop is undefined. Freeze needs a concrete frame number to pin its children at; without it the component cannot operate.
Source
Thrown at packages/core/src/freeze.tsx:29
readonly frame: number;
readonly children: React.ReactNode;
readonly active?: boolean | ((f: number) => boolean);
};
/*
* @description Freezes its children at the specified frame when rendering videos.
* @see [Documentation](https://remotion.dev/docs/freeze)
*/
export const Freeze: React.FC<FreezeProps> = ({
frame: frameToFreeze,
children,
active = true,
}) => {
const frame = useCurrentFrame();
const videoConfig = useVideoConfig();
if (typeof frameToFreeze === 'undefined') {
throw new Error(
`The <Freeze /> component requires a 'frame' prop, but none was passed.`,
);
}
if (typeof frameToFreeze !== 'number') {
throw new Error(
`The 'frame' prop of <Freeze /> must be a number, but is of type ${typeof frameToFreeze}`,
);
}
if (Number.isNaN(frameToFreeze)) {
throw new Error(
`The 'frame' prop of <Freeze /> must be a real number, but it is NaN.`,
);
}
if (!Number.isFinite(frameToFreeze)) {
throw new Error(View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Always pass a numeric frame prop: <Freeze frame={30}>.
- If frame is computed, supply a fallback: frame={computedFrame ?? 0}.
- Render <Freeze /> only when the frame value is known, otherwise render children directly.
Example fix
// before
<Freeze>{scene}</Freeze>
// after
<Freeze frame={30}>{scene}</Freeze> Defensive patterns
Strategy: type-guard
Validate before calling
if (typeof frameToFreeze !== 'number') {
// render children directly or pick a default frame
return <>{children}</>;
}
return <Freeze frame={frameToFreeze}>{children}</Freeze>; Type guard
const isFrame = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v);
Prevention
- Always pass an explicit numeric `frame` prop.
- Provide a fallback (frame={computed ?? 0}) for computed values.
- Render <Freeze /> only when the frame is known.
When it happens
Trigger: Rendering <Freeze>{children}</Freeze> without passing a `frame` prop, or passing frame={undefined} conditionally (e.g. frame={someMaybeUndefined}).
Common situations: Forgetting the frame prop; computing frame from a value that can be undefined; conditional rendering where frame is only sometimes passed.
Related errors
- The 'frame' prop of <Freeze /> must be a number, but is of t
- The 'frame' prop of <Freeze /> must be a real number, but it
- The 'frame' prop of <Freeze /> must be a finite number, but
- The "freeze" prop of <Sequence /> must be a number, but is o
- The "freeze" prop is not supported on <Html5Audio />. Use <S
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/4d320434bdca57dd.
Report an issue: GitHub.