remotion-dev/remotion · error

No video config found

Error message

No video config found

What it means

OffthreadVideoForRendering is the internal component used during server-side rendering to display <OffthreadVideo>. It reads the current video configuration from Remotion context; if none is present it throws 'No video config found'. In practice this means the component ran outside a valid Remotion rendering/composition context, since videoConfig should always be supplied by the Remotion core during a render.

Solutions

  1. Use <OffthreadVideo> only inside a Remotion <Composition> during rendering or in <Player>, never in plain React apps.
  2. Wrap the component with Remotion's context providers if writing a custom test harness (use Internals / CompositionManager + timeline contexts).
  3. Upgrade @remotion/player and @remotion/renderer/core to matching versions so the context is correctly populated.
  4. Render via `remotion render` / CLI rather than calling OffthreadVideoForRendering directly.

Example fix

// before
render(<OffthreadVideo src="video.mp4" />); // plain React
// after
// register a Composition and render through Remotion
<Composition id="vid" component={MyVideo} durationInFrames={100} fps={30} width={1920} height={1080} />;
Defensive patterns

Strategy: try-catch

Try / catch

try {
  renderMedia({composition, serveUrl, outputLocation});
} catch (e) {
  if (e instanceof Error && e.message === 'No video config found') {
    console.error('OffthreadVideo rendered outside a Remotion composition/context; check your entry point.');
  }
  throw e;
}

Prevention

When it happens

Trigger: Rendering OffthreadVideo (which internally mounts OffthreadVideoForRendering) outside of a Remotion composition, invoking the component directly in a plain React app or test without the Remotion context providers, or a broken/custom render pipeline that skips the Internals context.

Common situations: Unit-testing the internal component without wrapping providers, using OffthreadVideo in a non-Remotion React project, or core version mismatches where context is not established.

Understand the failure class

Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.

Related errors


AI-assisted analysis of remotion-dev/remotion@46a3a6bf13 (2026-09-18). Data as JSON: /api/errors/2168e2f896fb0caf. Report an issue: GitHub.

Appendix: source

Thrown at packages/core/src/video/OffthreadVideoForRendering.tsx:106

		],
	);

	const volume = evaluateVolume({
		volume: volumeProp,
		frame: volumePropsFrame,
		mediaVolume: 1,
	});

	warnAboutTooHighVolume(volume);
	const audioEnabled = useAudioEnabled();
	const {shouldUseAudio} = useMediaAudioState({
		muted,
		volume,
		audioEnabled,
	});

	if (!videoConfig) {
		throw new Error('No video config found');
	}

	useEffect(() => {
		if (!src) {
			throw new Error('No src passed');
		}

		if (!shouldUseAudio) {
			return;
		}

		registerRenderAsset({
			type: 'video',
			src: getAbsoluteSrc(src),
			id,
			frame: absoluteFrame,
			volume,
			mediaFrame: frame,

View on GitHub (pinned to 46a3a6bf13)