ruvnet/ruflo · error

${category}: ${identifier} already registered by ${existing}

Error message

${category}: ${identifier} already registered by ${existing}, ignoring from ${pluginName}

What it means

Warning from the internal conflict-resolution helper in EnhancedPluginRegistry: a second plugin tried to register a category identifier already owned by another plugin, and the configured strategy is 'first', so the new registration is discarded and null returned.

Source

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

    category: string,
    identifier: string,
    item: T,
    pluginName: string,
    owners: Map<string, string>,
    resolution?: ConflictResolution
  ): T | null {
    const existing = owners.get(identifier);

    if (!existing) {
      owners.set(identifier, pluginName);
      return item;
    }

    const strategy = resolution?.strategy ?? 'error';

    switch (strategy) {
      case 'first':
        this.logger.warn(`${category}: ${identifier} already registered by ${existing}, ignoring from ${pluginName}`);
        return null;

      case 'last':
        this.logger.warn(`${category}: ${identifier} replacing ${existing}'s version with ${pluginName}'s`);
        owners.set(identifier, pluginName);
        // Remove existing from cache
        this.removeFromCache(category, identifier);
        return item;

      case 'namespace': {
        const template = resolution?.namespaceTemplate ?? '{plugin}:{name}';

        // Namespace the existing entry too (on first conflict)
        const existingNs = template
          .replace('{plugin}', existing)
          .replace('{name}', identifier);
        if (!owners.has(existingNs)) {
          this.renameInCache(category, identifier, existingNs);

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Rename the conflicting identifier in one of the plugins, or remove the duplicate registration.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/plugins/src/registry/enhanced-plugin-registry.ts:728 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/7fa3f6daaf371255. Report an issue: GitHub.