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
- Ensure every <Audio> using the same src starts at the same composition position, or use distinct file copies for distinct start times
- Check that sampleRate passed to renderAudio/renderMedia matches across calls
- 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
- Use one start position per unique audio src
- Keep @remotion/* packages on the same version
- Pass a consistent sampleRate to all audio render calls
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
- Cannot render an image sequence with a codec that renders no
- No audio stream found in '${input_path}'. Ensure the video c
- Could not find audio stream in ${src}
- No src passed
- <Html5Audio> is not supported in @remotion/web-renderer. Use
AI-assisted analysis of remotion-dev/remotion@a6a7485a9a (2026-08-28).
Data as JSON: /api/errors/9bd1e34a0611b361.
Report an issue: GitHub.