remotion-dev/remotion · error · Error

Studio playback controls are not ready.

Error message

Studio playback controls are not ready.

What it means

The play tool requires Internals.timeValueRef.current to be non-null; it is null when the Studio player/playback UI has not mounted yet.

Source

Thrown at packages/studio/src/components/WebMcp.tsx:1533

						type: 'object',
						properties: {},
						additionalProperties: false,
					},
					annotations: {readOnlyHint: false},
					execute: () => {
						const compositionId = currentCompositionRef.current;
						if (compositionId === null) {
							throw new Error('No composition is currently selected.');
						}

						if (getCurrentDuration() <= 1) {
							throw new Error(
								'The current composition is a still and cannot play.',
							);
						}

						if (Internals.timeValueRef.current === null) {
							throw new Error('Studio playback controls are not ready.');
						}

						play();
						return Promise.resolve({
							currentContent: currentContentRef.current,
							playing: true,
						});
					},
				},
				{signal: controller.signal},
			),
			modelContext.registerTool(
				{
					name: 'pause',
					title: 'Pause Studio composition',
					description:
						'Pause the current Remotion Studio composition at the current frame.',
					inputSchema: {

View on GitHub (pinned to b2f4e34732)

Solutions

  1. Wait for the Studio player UI to be mounted (composition fully loaded) before calling play
  2. Retry after load completes
Defensive patterns

Strategy: retry

Try / catch

try { await playTool(); } catch (e) { if (e.message.includes('not ready')) { await waitForStudioReady(); await playTool(); } else throw e; }

Prevention

When it happens

Trigger: Calling play very early during Studio bootstrap before the player controls are mounted, or in an environment where the player did not render.

Common situations: Racing MCP tool calls against Studio startup.

Related errors


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