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

  1. Pass an explicit version for every non-@remotion dependency: {name: 'three', version: '0.160.0'}.
  2. Implement the resolveDependencies callback supplied to createBrowserStudioOperations so it fills a version for every dependency it accepts.
  3. 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

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


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