remotion-dev/remotion · error · Error

The <Player /> component does not accept `defaultProps`, but

Error message

The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.

What it means

During inline audio mixing, each audio file must start at the same sample position across all assets that reference it. If the same filePath is seen again with a different startInSamples, Remotion throws because the mix would be ambiguous.

Source

Thrown at packages/player/src/Player.tsx:206

		sampleRate = 48000,
		volumePersistenceKey,
		initialVolume,
		_experimentalKeepAudioContextAlive = false,
		...componentProps
	}: PlayerProps<Schema, Props>,
	ref: RefObject<PlayerRef>,
) => {
	if (typeof window !== 'undefined') {
		window.remotion_isPlayer = true;
	}

	const onTimelineSequenceChange = React.useContext(
		TimelineSequenceObserverContext,
	);

	// @ts-expect-error
	if (componentProps.defaultProps !== undefined) {
		throw new Error(
			'The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.',
		);
	}

	const componentForValidation = componentOrNullIfLazy(
		componentProps,
	) as ComponentType<unknown> | null;

	// @ts-expect-error
	if (componentForValidation?.type === Composition) {
		throw new TypeError(
			`'component' should not be an instance of <Composition/>. Pass the React component directly, and set the duration, fps and dimensions as separate props. See https://www.remotion.dev/docs/player/examples for an example.`,
		);
	}

	if (componentForValidation === Composition) {
		throw new TypeError(
			`'component' must not be the 'Composition' component. Pass your own React component directly, and set the duration, fps and dimensions as separate props. See https://www.remotion.dev/docs/player/examples for an example.`,

View on GitHub (pinned to a6a7485a9a)

Solutions

  1. Ensure every <Audio> using the same src starts at the same composition position, or use distinct file copies for distinct start times
  2. Check that sampleRate passed to renderAudio/renderMedia matches across calls
  3. Upgrade @remotion/renderer and remotion to matching versions so start-time computation is consistent
Defensive patterns

Strategy: try-catch

Try / catch

try { await renderMedia({...}); } catch (e) { if (e.message.includes('start time for inline audio asset')) { /* align Audio start positions or split files, then re-render */ } }

Prevention

When it happens

Trigger: Rendering a composition where <Audio src={sameFile}> appears in sequences that resolve to different start times in samples across assets sharing the filePath (e.g. due to differing sample rates or trimming calculations).

Common situations: Mixing audio with mismatched sample rate assumptions between assets, or an <Audio> inside a sequence whose start differs per render pass, or version changes in how start times are computed.

Related errors


AI-assisted analysis of remotion-dev/remotion@a6a7485a9a (2026-08-28). Data as JSON: /api/errors/9bd1e34a0611b361. Report an issue: GitHub.