remotion-dev/remotion · error · Error
No video config found. Likely reasons:- You are probably cal
Error message
No video config found. Likely reasons:- You are probably calling useVideoConfig() from outside the component passed to <Player />. See https://www.remotion.dev/docs/player/examples for how to set up the Player correctly.- You have multiple versions of Remotion installed which causes the React context to get lost.
What it means
useVideoConfig throws this Player-specific variant when no video config is found and the code detects it is running inside @remotion/player (window.remotion_isPlayer or useIsPlayer true). It means useVideoConfig was called from a component that is not a descendant of the component passed to <Player component={...}/>, or that multiple Remotion versions split the context.
Source
Thrown at packages/core/src/use-video-config.ts:21
import {useIsPlayer} from './is-player.js';
import {useUnsafeVideoConfig} from './use-unsafe-video-config.js';
import type {VideoConfig} from './video-config.js';
/*
* @description Retrieves information about the composition context in which it is used, including dimensions, frame rate, duration, and more.
* @see [Documentation](https://www.remotion.dev/docs/use-video-config)
*/
export const useVideoConfig = (): VideoConfig => {
const videoConfig = useUnsafeVideoConfig();
const context = useContext(CanUseRemotionHooks);
const isPlayer = useIsPlayer();
if (!videoConfig) {
if (
(typeof window !== 'undefined' && window.remotion_isPlayer) ||
isPlayer
) {
throw new Error(
[
'No video config found. Likely reasons:',
'- You are probably calling useVideoConfig() from outside the component passed to <Player />. See https://www.remotion.dev/docs/player/examples for how to set up the Player correctly.',
'- You have multiple versions of Remotion installed which causes the React context to get lost.',
].join('-'),
);
}
throw new Error(
'No video config found. You are probably calling useVideoConfig() from a component which has not been registered as a <Composition />. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions for more information.',
);
}
if (!context) {
throw new Error('Called useVideoConfig() outside a Remotion composition.');
}
return videoConfig;View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Move the useVideoConfig() call inside the component you pass to <Player component={...}>.
- Deduplicate Remotion: `npm ls @remotion/core` should show one version; add overrides/resolutions if multiple resolve.
- Confirm the component passed to <Player> is the same component (or a descendant) that calls useVideoConfig.
- See https://www.remotion.dev/docs/player/examples for the correct Player wiring.
Example fix
// before
function Outer() {
const {fps} = useVideoConfig(); // outside Player subtree
return <Player component={Inner} {...props} />;
}
// after
function Inner() {
const {fps} = useVideoConfig();
return <h1>{fps}</h1>;
}
function Outer() {
return <Player component={Inner} {...props} />;
} Defensive patterns
Strategy: validation
Validate before calling
// Move useVideoConfig() inside the component passed to <Player>. // Dedupe Remotion: ensure `npm ls @remotion/core` shows one version.
Prevention
- Call useVideoConfig only inside the component passed via <Player component={...}>.
- Deduplicate Remotion across the workspace with package manager overrides.
- When extracting logic, pass needed config values as props instead of calling the hook outside.
When it happens
Trigger: Calling useVideoConfig in a sibling/parent of the Player's child component rather than inside it; rendering the Player and a separate component tree that shares a hook; duplicate @remotion/core copies so the Player's provider does not reach the hook.
Common situations: Extracting a hook call outside the component passed to <Player>; HOCs that call useVideoConfig before the Player subtree mounts; monorepo with mismatched @remotion versions across packages; bundler dedupe issues.
Related errors
- Called useVideoConfig() outside a Remotion composition.
- Tried to enable the buffering state, but a Remotion context
- useCurrentScale() was called outside of a Remotion context.
- useMediaPlayback must be used inside a <BufferingContext>
- No video config found. You are probably calling useVideoConf
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/54c4b6e20c128479.
Report an issue: GitHub.