ruvnet/ruflo · error

[vector-db] ruvector HNSW init failed, falling back to brute

Error message

[vector-db] ruvector HNSW init failed, falling back to brute-force search: ${(err as Error)?.message ?? err}

What it means

Log warning in createVectorDB: ruvector's HNSW-backed createVectorDB threw for the requested dimensions, so the factory deliberately falls back to the brute-force implementation and makes the performance degradation visible rather than silent.

Source

Thrown at v3/@claude-flow/cli/src/ruvector/vector-db.ts:282

  }
  return false;
}

/**
 * Create a vector database
 * Uses ruvector HNSW if available, falls back to brute-force search
 */
export async function createVectorDB(dimensions: number = 768): Promise<VectorDB> {
  await loadRuVector();

  if (ruvectorModule && typeof ruvectorModule.createVectorDB === 'function') {
    try {
      return await ruvectorModule.createVectorDB(dimensions);
    } catch (err) {
      // Fall back to simple implementation, but make the degradation VISIBLE.
      // A silent fall-through here turns HNSW into O(n) brute force without any
      // signal — exactly the failure mode that masked the lock-contention bug.
      console.warn(
        `[vector-db] ruvector HNSW init failed, falling back to brute-force search: ${(err as Error)?.message ?? err}`
      );
    }
  }

  return new FallbackVectorDB(dimensions);
}

/**
 * Generate an embedding for text
 * Uses ruvector if available, falls back to hash-based embedding
 *
 * @returns The embedding vector. When using hash fallback, the returned
 *          Float32Array will have a `_warning` property (non-enumerable)
 *          indicating it lacks semantic meaning.
 */
export function generateEmbedding(text: string, dimensions: number = 768): Float32Array {
  if (ruvectorModule && typeof ruvectorModule.generateEmbedding === 'function') {

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Check the ruvector native/WASM module load error in the message; brute-force search works but is slower, so reinstall or rebuild ruvector to restore HNSW indexing.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at v3/@claude-flow/cli/src/ruvector/vector-db.ts:282 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/eb869b96d51b4113. Report an issue: GitHub.