remotion-dev/remotion · error · Error
No video config found
Error message
No video config found
What it means
The rendering path of `<Video>` (`VideoForRendering`) reads the active video config via `useUnsafeVideoConfig()`. If the component is mounted outside a `<Composition>` / `<Player>` context that provides a config, the value is `null` and the component throws.
Source
Thrown at packages/core/src/video/VideoForRendering.tsx:96
useContext(RenderAssetManager);
// Generate a string that's as unique as possible for this asset
// but at the same time the same on all threads
const id = useMemo(
() =>
`video-${random(
props.src ?? '',
)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`,
[
props.src,
sequenceContext?.cumulatedFrom,
sequenceContext?.relativeFrom,
sequenceContext?.durationInFrames,
],
);
if (!videoConfig) {
throw new Error('No video config found');
}
const volume = evaluateVolume({
volume: volumeProp,
frame: volumePropsFrame,
mediaVolume: 1,
});
warnAboutTooHighVolume(volume);
useEffect(() => {
if (!props.src) {
throw new Error('No src passed');
}
if (props.muted) {
return;
}View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Ensure `<Video>` is always rendered within a `<Composition>` (or `<Player>`).
- In tests, wrap the component in a `<Composition>` and use Remotion's test harness.
- Move the `<Video>` out of any standalone-preview code path.
Example fix
// before (standalone)
render(<Video src={url} />);
// after
render(<Composition component={() => <Video src={url} />} ... />); Defensive patterns
Strategy: type-guard
Validate before calling
// Ensure composition context exists before mounting
import {useVideoConfig} from 'remotion';
const cfg = useVideoConfig(); // throws a clearer error if missing Type guard
const hasVideoConfig = (): boolean => Boolean(useUnsafeVideoConfig());
Prevention
- Render `<Video>` only inside `<Composition>` or `<Player>`.
- Wrap standalone previews in a `RemotionRoot` with compositions.
- Use Remotion's official test utilities for component tests.
When it happens
Trigger: Rendering `<Video>` outside of any `<Composition>`, `<Player>`, or `<CurrentFrameContext>`-providing wrapper during a server render.
Common situations: Unit-testing a component that contains `<Video>` without wrapping it in a `RemotionRoot`/`Composition`, or rendering a fragment standalone.
Related errors
- No src passed
- The browser threw an error while playing the video ${props.s
- The browser threw an error
- Failed to create WebGL texture
- The public directory was specified as "${p}", which is the r
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/3c38168bbdb2cf79.
Report an issue: GitHub.