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 renderStillOnCloudRun() when the @remotion/renderer still-render pipeline invokes the onArtifact callback. Cloud Run's still-render configuration explicitly disables artifact emission because there is no durable, accessible artifact store wired into the single-threaded still path. Hitting this means a composition or renderer version requested artifact output that the Cloud Run environment cannot satisfy.

Source

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

			logLevel: body.logLevel,
			browserExecutable: null,
			cancelSignal: null,
			indent: false,
			timeoutInMilliseconds: body.delayRenderTimeoutInMilliseconds,
			onBrowserLog: null,
			onDownload: null,
			overwrite: true,
			port: null,
			puppeteerInstance: null,
			server: undefined,
			offthreadVideoCacheSizeInBytes: body.offthreadVideoCacheSizeInBytes,
			offthreadVideoThreads: body.offthreadVideoThreads,
			binariesDirectory: null,
			onBrowserDownload: () => {
				throw new Error('Should not download a browser in Cloud Run');
			},
			onArtifact: () => {
				throw new Error('Emitting artifacts is not supported in Cloud Run');
			},
			chromeMode: 'headless-shell',
			mediaCacheSizeInBytes: body.mediaCacheSizeInBytes,
			onLog: RenderInternals.defaultOnLog,
			licenseKey: null,
			isProduction: null,
		});
		Log.info({indent: false, logLevel: body.logLevel}, 'Still rendered');

		const storage = new Storage();

		const publicUpload = body.privacy === 'public' || !body.privacy;

		const uploadedResponse = await storage
			.bucket(body.outputBucket)
			.upload(tempFilePath, {
				destination: `renders/${renderId}/${body.outName ?? 'out.png'}`,
				predefinedAcl: publicUpload ? 'publicRead' : 'projectPrivate',

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Remove or disable artifact-emitting features from the composition being rendered as a still on Cloud Run.
  2. Redeploy the service from the matching @remotion/cloudrun version so the renderer's artifact defaults align with the disabled callback.
  3. If artifacts are required, render locally or on Lambda instead of Cloud Run, where artifact storage is supported.
  4. Verify no inputProps or render options inject an onArtifact/artifact-enabled flag.

Example fix

// before: composition uses an artifact-emitting hook
// useArtifact({ enabled: true });
// after: disable artifacts before rendering the still on Cloud Run
// (remove the hook, or render on Lambda/local where artifacts are supported)
Defensive patterns

Strategy: validation

Validate before calling

// Ensure the composition does not enable artifact emission before rendering as a still on Cloud Run.
// Artifacts are composition/option-driven; the guard is at the render layer. Document and assert your still config:
const stillOpts = { ...opts, // no onArtifact / artifact-enabled flags };

Type guard

function compositionEmitsArtifacts(comp: unknown): boolean {
  // Heuristic: flag known artifact-emitting APIs in the composition source.
  // True detection requires inspecting the bundle; treat as conservative.
  return false;
}

Try / catch

try {
  await renderStillOnCloudRun(opts);
} catch (err) {
  if (err instanceof Error && err.message.startsWith('Emitting artifacts is not supported')) {
    throw new Error('This composition emits artifacts, which Cloud Run stills do not support. Render on Lambda or locally.');
  }
  throw err;
}

Prevention

When it happens

Trigger: The renderer's still render attempts to emit an artifact (e.g., via a render hook or a newer renderer feature that produces artifacts) and calls the onArtifact callback, which is hard-coded to throw.

Common situations: A composition uses an API or effect that emits artifacts (e.g., separate audio tracks, debug frames); the service image bundles a newer @remotion/renderer that defaults to artifact emission; a custom entrypoint re-enables artifacts.

Related errors


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