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
- Import only Remotion packages that are bundled with the configured workspace commit or release
- Pick a release version of Browser Studio that actually includes the package you need
- 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
- Restrict Browser Studio projects to @remotion/* packages included in the configured release
- Never rely on registry fallback for Remotion packages - the resolver intentionally refuses it
- Check the workspace exports map for a package name before allowing the import in your editor integration
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
- 🚨 Multiple versions of Remotion detected: ${[VERSION, alrea
- No published version is known for ${name}
- The repository package ${packageName} does not expose ${subp
- Only HTTP(S) URLs can be imported
- Remote asset URLs cannot include credentials
AI-assisted analysis of remotion-dev/remotion@10db9de073 (2026-08-22).
Data as JSON: /api/errors/1e880d482131c58d.
Report an issue: GitHub.