ruvnet/ruflo · error
Missing dependency: ${name}
Error message
Missing dependency: ${name} What it means
During dependency resolution a plugin's declared dependency name has no entry in the registry map. The plugin being visited requires a peer that was never registered (or was registered under a different name), so the load order cannot be computed.
Source
Thrown at v3/@claude-flow/plugins/src/registry/plugin-registry.ts:342
// =========================================================================
/**
* Resolve dependencies and return load order.
*/
private resolveDependencies(): string[] {
const visited = new Set<string>();
const visiting = new Set<string>();
const order: string[] = [];
const visit = (name: string): void => {
if (visited.has(name)) return;
if (visiting.has(name)) {
throw new Error(`Circular dependency detected: ${name}`);
}
const entry = this.plugins.get(name);
if (!entry) {
throw new Error(`Missing dependency: ${name}`);
}
visiting.add(name);
const deps = entry.plugin.metadata.dependencies ?? [];
for (const dep of deps) {
visit(dep);
}
visiting.delete(name);
visited.add(name);
order.push(name);
};
for (const name of this.plugins.keys()) {
visit(name);
}
View on GitHub (pinned to fa13ee4ad6)
Solutions
- Register the missing dependency plugin before the dependent one.
- Fix the dependency name in the plugin metadata.
- Make the dependency optional if the plugin can function without it.
Defensive patterns
Strategy: validation
When it happens
Trigger: A plugin declares a dependency on a plugin that is not registered.
Common situations: Dependency plugin not installed, misspelled dependency name, or registration order excludes it.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/930b753d9d9d3871.
Report an issue: GitHub.