ruvnet/ruflo · error

Force removing ${name}, breaking: ${dependents.join(', ')}

Error message

Force removing ${name}, breaking: ${dependents.join(', ')}

What it means

Warning in unregister(): force removal of a plugin was requested while other plugins still depend on it. Unlike cascade mode, dependents are NOT shut down first — they are left with a missing dependency, which is why the warning lists them.

Source

Thrown at v3/@claude-flow/plugins/src/registry/enhanced-plugin-registry.ts:368

    if (!entry) {
      throw new Error(`Plugin ${name} not found`);
    }

    // Check dependents
    const dependents = this.dependencyGraph.getDependents(name);

    if (dependents.length > 0) {
      if (options?.cascade) {
        // Unload dependents first (in reverse order)
        const order = this.dependencyGraph.getRemovalOrder(name);
        for (const dep of order) {
          if (dep !== name) {
            await this.shutdownPlugin(dep);
            this.removePluginFromGraph(dep);
          }
        }
      } else if (options?.force) {
        this.logger.warn(`Force removing ${name}, breaking: ${dependents.join(', ')}`);
      } else {
        throw new Error(`Cannot remove ${name}: required by ${dependents.join(', ')}`);
      }
    }

    // Shutdown and remove
    await this.shutdownPlugin(name);
    this.removePluginFromGraph(name);

    this.logger.info(`Plugin unregistered: ${name}`);
  }

  // =========================================================================
  // Initialization
  // =========================================================================

  /**
   * Initialize all registered plugins.

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Confirm the dependents can tolerate the removal; otherwise remove or update the dependent plugins first instead of force-removing.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/plugins/src/registry/enhanced-plugin-registry.ts:368 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/76baed7789909771. Report an issue: GitHub.