remotion-dev/remotion · error · Error

Emitting artifacts is not supported in Cloud Run

Error message

Emitting artifacts is not supported in Cloud Run

What it means

Thrown server-side by renderMediaSingleThread() if the render process tries to emit an artifact (e.g., a separate audio or image asset). Cloud Run rendering does not support artifact emission; the onArtifact callback is wired to throw immediately.

Source

Thrown at packages/cloudrun/src/functions/render-media-single-thread.ts:134

		};

		res.writeHead(200, {'Content-Type': 'text/html'});

		const actualChromiumOptions: Required<ChromiumOptions> = {
			...body.chromiumOptions,
			ignoreCertificateErrors:
				body.chromiumOptions?.ignoreCertificateErrors ?? false,
			disableWebSecurity: body.chromiumOptions?.disableWebSecurity ?? false,
			headless: body.chromiumOptions?.headless ?? true,
			userAgent: body.chromiumOptions?.userAgent ?? null,
			darkMode: body.chromiumOptions?.darkMode ?? false,
			// Override the `null` value, which might come from CLI with swANGLE
			gl: body.chromiumOptions?.gl ?? 'swangle',
			enableMultiProcessOnLinux: true,
		};

		const onArtifact: OnArtifact = () => {
			throw new Error('Emitting artifacts is not supported in Cloud Run');
		};

		await RenderInternals.internalRenderMedia({
			composition: {
				...composition,
				height: body.forceHeight ?? composition.height,
				width: body.forceWidth ?? composition.width,
				fps: body.forceFps ?? composition.fps,
				durationInFrames:
					body.forceDurationInFrames ?? composition.durationInFrames,
			},
			serveUrl: body.serveUrl,
			codec: body.codec,
			outputLocation: tempFilePath,
			serializedInputPropsWithCustomSchema:
				body.serializedInputPropsWithCustomSchema,
			serializedResolvedPropsWithCustomSchema:
				NoReactInternals.serializeJSONWithSpecialTypes({

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Remove separateAudioTo and any artifact-emitting options from renderMediaOnCloudRun input.
  2. Render locally with renderMedia() if you need artifact emission.
  3. Separate audio in a post-processing step after the Cloud Run render completes.

Example fix

// before
await renderMediaOnCloudRun({separateAudioTo: 'audio.wav', ...});
// after
await renderMediaOnCloudRun({...}); // omit separateAudioTo
Defensive patterns

Strategy: validation

Validate before calling

if (opts.separateAudioTo !== undefined || opts.onArtifact) {
  throw new Error('Artifacts / separateAudioTo are not supported on Cloud Run');
}
await renderMediaOnCloudRun(opts);

Prevention

When it happens

Trigger: A renderMedia request includes options or a composition that triggers artifact emission (e.g., separateAudioTo, image-sequence artifacts), causing the onArtifact handler to fire on the server.

Common situations: Passing separateAudioTo or enabling artifact-generating options that work locally but are unsupported on Cloud Run.

Related errors


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