remotion-dev/remotion · error · Error

The Remotion package ${packageName} is not part of the confi

Error message

The Remotion package ${packageName} is not part of the configured ${sourceId}. Refusing to fall back to the package registry.

What it means

resolveBrowserStudioRemotionPackage() handles imports of remotion / @remotion/* when a package source (a workspace commit or a pinned release) is configured. It resolves the request through the injected workspace package exports map; if the package name is not present in that map, it throws instead of silently serving some other version from npm. This guarantees the Remotion runtime inside Browser Studio is always the exact configured build and never an arbitrary registry copy.

Source

Thrown at packages/browser-studio/src/workspace-package-exports.ts:120

	const packageName = getPackageName(request);
	if (packageName !== 'remotion' && !packageName.startsWith('@remotion/')) {
		return null;
	}

	const resolved = resolveBrowserStudioWorkspacePackage({
		baseUrl: source.baseUrl,
		packages,
		request,
	});
	if (resolved) {
		return resolved;
	}

	const sourceId =
		source.type === 'workspace'
			? `workspace commit ${source.commit}`
			: `release ${source.version}`;
	throw new Error(
		`The Remotion package ${packageName} is not part of the configured ${sourceId}. Refusing to fall back to the package registry.`,
	);
};

View on GitHub (pinned to 10db9de073)

Solutions

  1. Import only Remotion packages that are bundled with the configured workspace commit or release
  2. Pick a release version of Browser Studio that actually includes the package you need
  3. Remove or replace the unsupported @remotion/* import (e.g. drop @remotion/lambda usage, which cannot run in a browser anyway)

Example fix

// before: importing a package not bundled in the configured source
import {getSites} from '@remotion/lambda';

// after: keep Browser Studio projects to bundled client packages, e.g.
import {Img, staticFile} from 'remotion';
Defensive patterns

Strategy: validation

Validate before calling

const getPackageName = (request: string) =>
  request.startsWith('@') ? request.split('/').slice(0, 2).join('/') : request.split('/')[0];
const packageName = getPackageName(request);
if (packageName === 'remotion' || packageName.startsWith('@remotion/')) {
  if (!workspaceExports[packageName]) {
    throw new Error(`${packageName} is not bundled with this Browser Studio build - remove the import`);
  }
}

Type guard

const isBundledRemotionPackage = (
  request: string,
  exports: BrowserStudioWorkspacePackageExports,
): boolean => {
  const name = request.startsWith('@') ? request.split('/').slice(0, 2).join('/') : request.split('/')[0];
  return name !== 'remotion' && !name.startsWith('@remotion/') ? true : Boolean(exports[name]);
};

Try / catch

try {
  resolveBrowserStudioRemotionPackage({packages, request, source});
} catch (e) {
  if (/Refusing to fall back to the package registry/.test(String((e as Error).message))) {
    // the package is not in the configured workspace/release; block the import rather than retrying
  } else throw e;
}

Prevention

When it happens

Trigger: A Browser Studio project imports an @remotion/* package that is not part of the configured workspace commit or release bundle (for example a server-side package like @remotion/lambda), so resolveBrowserStudioWorkspacePackage returns null and the resolver refuses the registry fallback for Remotion-scoped packages.

Common situations: Templates importing Remotion packages that the Browser Studio build did not bundle; version skew between the template's dependencies and the configured release; copying code from a server-rendering project into a Browser Studio project.

Related errors


AI-assisted analysis of remotion-dev/remotion@10db9de073 (2026-08-22). Data as JSON: /api/errors/1e880d482131c58d. Report an issue: GitHub.