remotion-dev/remotion · error · Error

acceptableTimeShift has been removed. Use…

Error message

acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.

What it means

The `acceptableTimeShift` prop (in seconds-implicit units) was renamed to `acceptableTimeShiftInSeconds` for clarity. `<Video>` (preview path) throws on first render if the old prop is present to force the migration.

Solutions

  1. Rename the prop: `acceptableTimeShift` -> `acceptableTimeShiftInSeconds`.
  2. Search the codebase for `acceptableTimeShift=` (without `InSeconds`) and update all sites.
  3. Remove the prop if the default tolerance is acceptable.

Example fix

// before
<Video src={url} acceptableTimeShift={0.1} />
// after
<Video src={url} acceptableTimeShiftInSeconds={0.1} />
Defensive patterns

Strategy: validation

Validate before calling

// Codemod rename: acceptableTimeShift -> acceptableTimeShiftInSeconds

Prevention

When it happens

Trigger: Passing `acceptableTimeShift={...}` to `<Video>` or `<OffthreadVideo>` after upgrading Remotion.

Common situations: Upgrading Remotion across the version that renamed the prop, or using stale example code.

Related errors


AI-assisted analysis of remotion-dev/remotion@46a3a6bf13 (2026-08-12). Data as JSON: /api/errors/51ad327185cba00f. Report an issue: GitHub.

Appendix: source

Thrown at packages/core/src/video/VideoForPreview.tsx:144

	const _propsValid: IsExact<typeof nativeProps, Expected> = true;

	if (!_propsValid) {
		throw new Error('typecheck error');
	}

	const volumePropFrame = useFrameForVolumeProp(
		loopVolumeCurveBehavior ?? 'repeat',
	);
	const {fps, durationInFrames} = useVideoConfig();
	const parentSequence = useContext(SequenceContext);
	const {isStudio} = useRemotionEnvironment();
	const logLevel = useLogLevel();
	const mountTime = useMountTime();

	const [timelineId] = useState(() => String(Math.random()));

	if (typeof acceptableTimeShift !== 'undefined') {
		throw new Error(
			'acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.',
		);
	}

	const [mediaVolume] = useMediaVolumeState();

	const userPreferredVolume = evaluateVolume({
		frame: volumePropFrame,
		volume,
		mediaVolume,
	});
	const {isMutedForTimeline, isMutedForPlayback} = useMediaAudioState({
		muted: muted ?? false,
		volume: userPreferredVolume,
		audioEnabled: true,
	});

	warnAboutTooHighVolume(userPreferredVolume);

View on GitHub (pinned to 46a3a6bf13)