{"record":{"id":"8c6891757bdfc3cb","repo":"remotion-dev/remotion","slug":"unknown-renderer-s3-status-state-string-status","errorCode":null,"errorMessage":"Unknown renderer S3 status state: ${String(status.state)}","messagePattern":"Unknown renderer S3 status state: (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/serverless-client/src/renderer-transport.ts","lineNumber":178,"sourceCode":"\t\t}\n\n\t\treturn status as S3RendererStatus;\n\t}\n\n\tif (status.state === 'failed') {\n\t\tif (\n\t\t\t!isNumber(status.failedAt) ||\n\t\t\ttypeof status.shouldRetry !== 'boolean' ||\n\t\t\ttypeof status.errorInfo !== 'object' ||\n\t\t\tstatus.errorInfo === null\n\t\t) {\n\t\t\tthrow new Error('Renderer S3 failed status is invalid');\n\t\t}\n\n\t\treturn status as S3RendererStatus;\n\t}\n\n\tthrow new Error(`Unknown renderer S3 status state: ${String(status.state)}`);\n};\n","sourceCodeStart":160,"sourceCodeEnd":180,"githubUrl":"https://github.com/remotion-dev/remotion/blob/10db9de07356446fb0edb3c3ae211369b693d18b/packages/serverless-client/src/renderer-transport.ts#L160-L180","documentation":"After validating the base fields, parseS3RendererStatus() accepts only state values 'running', 'completed', and 'failed'. Any other value falls through to this error - by design, so a status written by a newer renderer that introduced a new state cannot be misinterpreted by an older orchestrator.","triggerScenarios":"Version skew: a newer renderer wrote a state value this parser does not know; or a corrupted/foreign file sits at the status key with an arbitrary state field.","commonSituations":"CLI upgraded but the Cloud Run image / Lambda functions not redeployed (or the reverse); a shared bucket written to by multiple Remotion generations.","solutions":["Align every @remotion/* package to one exact version and redeploy the renderer functions/image, then retry.","Run npx remotion versions to find mismatched packages across the project.","Use a fresh renderId after redeploying so no old status files linger.","If all versions match exactly and it still occurs, report it as a Remotion bug with the status.json body."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# CI gate: all @remotion/* packages must be the same version before deploying renderers\nnpm ls @remotion/serverless @remotion/serverless-client @remotion/cli --depth=0\nnpx remotion versions","typeGuard":null,"tryCatchPattern":"try {\n  await renderMediaOnCloudRun(input);\n} catch (err) {\n  if (err.message.startsWith('Unknown renderer S3 status state')) {\n    throw new Error('Renderer wrote a status state this orchestrator does not know - redeploy with matching versions and retry');\n  }\n  throw err;\n}","preventionTips":["Pin exact matching versions for every @remotion/* package and redeploy renderer images/functions together with the CLI.","Never let a shared bucket be written by renderers of different Remotion generations.","Run npx remotion versions in CI to catch skew before it surfaces as unknown-state errors."],"tags":["serverless","s3","version-mismatch","state-machine","transport"],"backgroundTag":"schema-version-mismatch","analyzedSha":"10db9de07356446fb0edb3c3ae211369b693d18b","analyzedAt":"2026-08-22T21:45:17.748Z","contentChangedAt":"2026-08-22T21:45:17.748Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}