remotion-dev/remotion · error · Error
Could not resolve ${dependency.name}
Error message
Could not resolve ${dependency.name} What it means
In createBrowserStudioOperations's resolveElementDependencies, non-@remotion dependencies first go through the optional host-provided resolveDependencies callback (which defaults to {} when absent). If a dependency still has version === null afterwards — no explicit version and the resolver did not fill one in — this error is thrown naming the package.
Source
Thrown at packages/browser-studio/src/browser-studio-operations.ts:829
resolveDependencies !== null
? await resolveDependencies(dependencies)
: {};
const remotionVersion = dependencyVersions.remotion;
for (const dependency of dependencies) {
if (dependency.name.startsWith('@remotion/')) {
if (!remotionVersion) {
throw new Error(
`Cannot resolve ${dependency.name} because the Browser Studio Remotion version is unavailable`,
);
}
resolved[dependency.name] = remotionVersion;
continue;
}
if (dependency.version === null) {
throw new Error(`Could not resolve ${dependency.name}`);
}
resolved[dependency.name] ??= dependency.version;
}
return resolved;
};
const getEffectStatus = ({
effectIndex,
fileName,
project,
schema,
sequenceNodePath,
}: {
effectIndex: number;
fileName: string;
project: VirtualProject;View on GitHub (pinned to b2f4e34732)
Solutions
- Pass an explicit version for every non-@remotion dependency: {name: 'three', version: '0.160.0'}.
- Implement the resolveDependencies callback supplied to createBrowserStudioOperations so it fills a version for every dependency it accepts.
- Reject or filter dependencies you cannot resolve before calling installPackages.
Defensive patterns
Strategy: validation
Validate before calling
const canResolve = (deps: readonly {name: string; version: string | null}[]) =>
deps.every(
(d) =>
d.name.startsWith('@remotion/') ||
d.version !== null ||
resolveDependenciesCallback !== null, // and the callback fills this name
); Prevention
- Always attach explicit versions to third-party dependencies in element payloads.
- Supply a resolveDependencies callback to createBrowserStudioOperations that covers your allowlist.
- Log unresolved names early instead of letting the operation loop throw.
When it happens
Trigger: installPackages({dependencies: [{name: 'three', version: null}]}) on a host whose resolveDependencies is null or returns nothing for that package.
Common situations: Element payloads that list third-party dependencies without versions on hosts that never implemented a dependency resolver; resolvers that only handle a whitelist and silently omit everything else.
Related errors
- Could not resolve ${dependency.name}
- Browser Studio Remotion version is unavailable
- Cannot resolve ${dependency.name} because the Browser Studio
- No packages were specified
- packageName must be a valid npm package name.
AI-assisted analysis of remotion-dev/remotion@b2f4e34732 (2026-08-22).
Data as JSON: /api/errors/1a45774099d56ac7.
Report an issue: GitHub.