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
- Remove or disable artifact-emitting features from the composition being rendered as a still on Cloud Run.
- Redeploy the service from the matching @remotion/cloudrun version so the renderer's artifact defaults align with the disabled callback.
- If artifacts are required, render locally or on Lambda instead of Cloud Run, where artifact storage is supported.
- 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
- Do not enable artifact-emitting features for stills rendered on Cloud Run.
- Keep renderer and cloudrun package versions aligned so defaults match.
- Use Lambda or local rendering when artifacts are required.
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
- Emitting artifacts is not supported in Cloud Run
- Version mismatch: When calling renderMediaOnCloudRun(), you
- Should not download a browser in Cloud Run
- ARTIFACT_REGISTRY_ENV is ${process.env.ARTIFACT_REGISTRY_ENV
- You have multiple buckets (${remotionBuckets .map((b) =>
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/7ba35e446aaeebc2.
Report an issue: GitHub.