{"record":{"id":"c01d7da91c962fd1","repo":"remotion-dev/remotion","slug":"renderstillonlambda-has-moved-to-remotion-lamb","errorCode":null,"errorMessage":"renderStillOnLambda() has moved to `@remotion/lambda-client`. Please import it from there.","messagePattern":"renderStillOnLambda\\(\\) has moved to `@remotion/lambda-client`\\. Please import it from there\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/lambda/src/index.ts","lineNumber":113,"sourceCode":"\t: deprecatedRenderMediaOnLambda;\n\n/**\n * @deprecated Import this from `@remotion/lambda-client` instead\n */\nconst getRenderProgress = NoReactInternals.ENABLE_V5_BREAKING_CHANGES\n\t? () => {\n\t\t\tthrow new Error(\n\t\t\t\t'getRenderProgress() has moved to `@remotion/lambda-client`. Please import it from there.',\n\t\t\t);\n\t\t}\n\t: deprecatedGetRenderProgress;\n\n/**\n * @deprecated Import this from `@remotion/lambda-client` instead\n */\nconst renderStillOnLambda = NoReactInternals.ENABLE_V5_BREAKING_CHANGES\n\t? () => {\n\t\t\tthrow new Error(\n\t\t\t\t'renderStillOnLambda() has moved to `@remotion/lambda-client`. Please import it from there.',\n\t\t\t);\n\t\t}\n\t: deprecatedRenderStillOnLambda;\n\n/**\n * @deprecated Import this from `@remotion/lambda-client` instead\n */\nconst presignUrl = NoReactInternals.ENABLE_V5_BREAKING_CHANGES\n\t? () => {\n\t\t\tthrow new Error(\n\t\t\t\t'presignUrl() has moved to `@remotion/lambda-client`. Please import it from there.',\n\t\t\t);\n\t\t}\n\t: deprecatedPresignUrl;\n\n/**\n * @deprecated Import this from `@remotion/lambda-client` instead","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/lambda/src/index.ts#L95-L131","documentation":"In Remotion v5 (when NoReactInternals.ENABLE_V5_BREAKING_CHANGES is true), renderStillOnLambda() is no longer a working function exported from @remotion/lambda. It is replaced by a throwing stub directing users to import it from @remotion/lambda-client. This is part of the v5 package split that moves client-side rendering APIs into their own package.","triggerScenarios":"Importing and calling renderStillOnLambda() from @remotion/lambda in a Remotion v5 codebase where ENABLE_V5_BREAKING_CHANGES is enabled.","commonSituations":"Upgrading from v4 to v5; rendering still images on Lambda using the old import path; code from v4 tutorials.","solutions":["Import renderStillOnLambda from @remotion/lambda-client instead of @remotion/lambda.","Install @remotion/lambda-client if needed.","Update all other moved exports (renderMediaOnLambda, getRenderProgress, presignUrl, getSites) to the new package as well."],"exampleFix":"// before\nimport {renderStillOnLambda} from '@remotion/lambda';\n\n// after\nimport {renderStillOnLambda} from '@remotion/lambda-client';","handlingStrategy":"validation","validationCode":"function assertLambdaClientImport(sourceModule: string, fnName: string): void {\n  if (sourceModule === '@remotion/lambda' && NoReactInternals.ENABLE_V5_BREAKING_CHANGES) {\n    throw new Error(\n      `${fnName} must be imported from @remotion/lambda-client in v5.`\n    );\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["When upgrading to v5, move renderStillOnLambda to @remotion/lambda-client.","Grep your codebase for renderStillOnLambda imports from @remotion/lambda after a major bump.","Follow the v5 migration guide for the complete list of moved exports."],"tags":["lambda","v5-breaking-change","migration","import","lambda-client","deprecation"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}