remotion-dev/remotion · error · Error

Version mismatch: When calling renderMediaOnCloudRun(), you

Error message

Version mismatch: When calling renderMediaOnCloudRun(), you called a service which has the version ${VERSION} but the @remotion/cloudrun package is an older version. Deploy a new service with matchin version and use it to call renderMediaOnCloudRun().

What it means

Thrown server-side by renderStillSingleThread() when the incoming request body has no clientVersion field. This indicates the caller is using an outdated @remotion/cloudrun client that does not send version metadata, so the deployed service cannot verify compatibility.

Source

Thrown at packages/cloudrun/src/functions/render-still-single-thread.ts:27

import {getCompositionFromBody} from './helpers/get-composition-from-body';
import {getDownloadBehaviorSetting} from './helpers/get-download-behavior-setting';
import type {
	CloudRunPayloadType,
	RenderStillOnCloudrunOutput,
} from './helpers/payloads';
import {writeCloudrunError} from './helpers/write-cloudrun-error';

export const renderStillSingleThread = async (
	body: CloudRunPayloadType,
	res: ff.Response,
) => {
	if (body.type !== 'still') {
		throw new Error('expected type still');
	}

	if (body.clientVersion !== VERSION) {
		if (!body.clientVersion) {
			throw new Error(
				`Version mismatch: When calling renderMediaOnCloudRun(), you called a service which has the version ${VERSION} but the @remotion/cloudrun package is an older version. Deploy a new service with matchin version and use it to call renderMediaOnCloudRun().`,
			);
		}

		throw new Error(
			`Version mismatch: When calling renderMediaOnCloudRun(), you called a service, which has the version ${VERSION}, but the @remotion/cloudrun package you used to invoke the function has version ${body.clientVersion}. Deploy a new service and use it to call renderMediaOnCloudrun().`,
		);
	}

	const renderId = body.renderIdOverride ?? randomHash({randomInTests: true});

	try {
		Log.verbose(
			{indent: false, logLevel: body.logLevel},
			'Rendering still frame',
			body,
		);

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Upgrade @remotion/cloudrun to the latest version.
  2. Redeploy the Cloud Run service so client and service versions align.
  3. Use renderStillOnCloudRun() from the SDK rather than manual HTTP calls.

Example fix

// before: outdated client
// after
npm install @remotion/cloudrun@latest
npx remotion cloudrun services deploy --region=us-central1
Defensive patterns

Strategy: validation

Validate before calling

import {VERSION} from '@remotion/cloudrun';
if (!VERSION) throw new Error('Cannot determine client version');

Prevention

When it happens

Trigger: A still render request reaches the Cloud Run function with body.clientVersion falsy and body.type === 'still'.

Common situations: Using a very old @remotion/cloudrun client predating the clientVersion field, or a non-Remotion tool posting requests directly to the endpoint.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/d88d154bb2453bd7. Report an issue: GitHub.