{"record":{"id":"d88d154bb2453bd7","repo":"remotion-dev/remotion","slug":"version-mismatch-when-calling-rendermediaoncloudr-d88d15","errorCode":null,"errorMessage":"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().","messagePattern":"Version mismatch: When calling renderMediaOnCloudRun\\(\\), you called a service which has the version (.+?) but the @remotion/cloudrun package is an older version\\. Deploy a new service with matchin version and use it to call renderMediaOnCloudRun\\(\\)\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/cloudrun/src/functions/render-still-single-thread.ts","lineNumber":27,"sourceCode":"import {getCompositionFromBody} from './helpers/get-composition-from-body';\nimport {getDownloadBehaviorSetting} from './helpers/get-download-behavior-setting';\nimport type {\n\tCloudRunPayloadType,\n\tRenderStillOnCloudrunOutput,\n} from './helpers/payloads';\nimport {writeCloudrunError} from './helpers/write-cloudrun-error';\n\nexport const renderStillSingleThread = async (\n\tbody: CloudRunPayloadType,\n\tres: ff.Response,\n) => {\n\tif (body.type !== 'still') {\n\t\tthrow new Error('expected type still');\n\t}\n\n\tif (body.clientVersion !== VERSION) {\n\t\tif (!body.clientVersion) {\n\t\t\tthrow new Error(\n\t\t\t\t`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().`,\n\t\t\t);\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`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().`,\n\t\t);\n\t}\n\n\tconst renderId = body.renderIdOverride ?? randomHash({randomInTests: true});\n\n\ttry {\n\t\tLog.verbose(\n\t\t\t{indent: false, logLevel: body.logLevel},\n\t\t\t'Rendering still frame',\n\t\t\tbody,\n\t\t);\n","sourceCodeStart":9,"sourceCodeEnd":45,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/cloudrun/src/functions/render-still-single-thread.ts#L9-L45","documentation":"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.","triggerScenarios":"A still render request reaches the Cloud Run function with body.clientVersion falsy and body.type === 'still'.","commonSituations":"Using a very old @remotion/cloudrun client predating the clientVersion field, or a non-Remotion tool posting requests directly to the endpoint.","solutions":["Upgrade @remotion/cloudrun to the latest version.","Redeploy the Cloud Run service so client and service versions align.","Use renderStillOnCloudRun() from the SDK rather than manual HTTP calls."],"exampleFix":"// before: outdated client\n// after\nnpm install @remotion/cloudrun@latest\nnpx remotion cloudrun services deploy --region=us-central1","handlingStrategy":"validation","validationCode":"import {VERSION} from '@remotion/cloudrun';\nif (!VERSION) throw new Error('Cannot determine client version');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Upgrade @remotion/cloudrun to a version that sends clientVersion.","Align client and service versions after any upgrade."],"tags":["cloudrun","gcp","version-mismatch","still","compatibility"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}