remotion-dev/remotion · error · Error
The <Freeze /> component requires a 'frame' prop, but none…
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.
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 finite number, but…
- The 'frame' prop of <Freeze /> must be a number, but is of…
- The 'frame' prop of <Freeze /> must be a real number, but…
- animationData should be provided as an object. If you only…
- "hueShift" must be a finite number, but got
AI-assisted analysis of remotion-dev/remotion@46a3a6bf13 (2026-08-12).
Data as JSON: /api/errors/4d320434bdca57dd.
Report an issue: GitHub.
Appendix: 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 46a3a6bf13)