ruvnet/ruflo · error

WASM module '${name}' already registered, skipping

Error message

WASM module '${name}' already registered, skipping

What it means

Idempotence guard in WasmRegistry.register(): a bridge under the given name already exists, so the duplicate registration is skipped and the original bridge stays active. Harmless double-register, usually module re-initialization.

Source

Thrown at v3/plugins/ruvector-upstream/src/registry.ts:32

  bridge: WasmBridge;
  loadedAt?: Date;
  lastUsed?: Date;
  useCount: number;
}

/**
 * WASM Module Registry
 */
export class WasmRegistry {
  private modules: Map<string, RegistryEntry> = new Map();
  private initPromises: Map<string, Promise<void>> = new Map();

  /**
   * Register a WASM bridge
   */
  register(name: string, bridge: WasmBridge): void {
    if (this.modules.has(name)) {
      console.warn(`WASM module '${name}' already registered, skipping`);
      return;
    }

    this.modules.set(name, {
      bridge,
      useCount: 0,
    });
  }

  /**
   * Get a WASM bridge by name
   */
  async get<T = unknown>(name: string): Promise<WasmBridge<T> | null> {
    const entry = this.modules.get(name);
    if (!entry) {
      return null;
    }

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Check for duplicate registration of the same WASM module name and register each module once.
  2. If re-registration is intentional, use an explicit replace/update API instead of relying on skip behavior.
  3. Verify module names are unique across plugins to avoid collisions.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: register() is called with a WASM module name already present in the registry (duplicate plugin init or repeated load); the duplicate registration is skipped.

Common situations: See trigger scenarios.


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