remotion-dev/remotion · error · Error

presignUrl() has moved to `@remotion/lambda-client`. Please

Error message

presignUrl() has moved to `@remotion/lambda-client`. Please import it from there.

What it means

In Remotion v5 (when NoReactInternals.ENABLE_V5_BREAKING_CHANGES is true), presignUrl() 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.

Source

Thrown at packages/lambda/src/index.ts:124

	: deprecatedGetRenderProgress;

/**
 * @deprecated Import this from `@remotion/lambda-client` instead
 */
const renderStillOnLambda = NoReactInternals.ENABLE_V5_BREAKING_CHANGES
	? () => {
			throw new Error(
				'renderStillOnLambda() has moved to `@remotion/lambda-client`. Please import it from there.',
			);
		}
	: deprecatedRenderStillOnLambda;

/**
 * @deprecated Import this from `@remotion/lambda-client` instead
 */
const presignUrl = NoReactInternals.ENABLE_V5_BREAKING_CHANGES
	? () => {
			throw new Error(
				'presignUrl() has moved to `@remotion/lambda-client`. Please import it from there.',
			);
		}
	: deprecatedPresignUrl;

/**
 * @deprecated Import this from `@remotion/lambda-client` instead
 */
const getSites = NoReactInternals.ENABLE_V5_BREAKING_CHANGES
	? () => {
			throw new Error(
				'getSites() has moved to `@remotion/lambda-client`. Please import it from there.',
			);
		}
	: deprecatedGetSites;

export {
	deleteFunction,

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Import presignUrl from @remotion/lambda-client instead of @remotion/lambda.
  2. Install @remotion/lambda-client if needed.
  3. Update all other moved exports (renderMediaOnLambda, getRenderProgress, renderStillOnLambda, getSites) to the new package as well.

Example fix

// before
import {presignUrl} from '@remotion/lambda';

// after
import {presignUrl} from '@remotion/lambda-client';
Defensive patterns

Strategy: validation

Validate before calling

function assertLambdaClientImport(sourceModule: string, fnName: string): void {
  if (sourceModule === '@remotion/lambda' && NoReactInternals.ENABLE_V5_BREAKING_CHANGES) {
    throw new Error(
      `${fnName} must be imported from @remotion/lambda-client in v5.`
    );
  }
}

Prevention

When it happens

Trigger: Importing and calling presignUrl() from @remotion/lambda in a Remotion v5 codebase where ENABLE_V5_BREAKING_CHANGES is enabled.

Common situations: Upgrading from v4 to v5; generating presigned S3 URLs for render output using the old import path.

Related errors


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