{"record":{"id":"eb869b96d51b4113","repo":"ruvnet/ruflo","slug":"vector-db-ruvector-hnsw-init-failed-falling-bac","errorCode":null,"errorMessage":"[vector-db] ruvector HNSW init failed, falling back to brute-force search: ${(err as Error)?.message ?? err}","messagePattern":"\\[vector-db\\] ruvector HNSW init failed, falling back to brute-force search: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/ruvector/vector-db.ts","lineNumber":282,"sourceCode":"  }\n  return false;\n}\n\n/**\n * Create a vector database\n * Uses ruvector HNSW if available, falls back to brute-force search\n */\nexport async function createVectorDB(dimensions: number = 768): Promise<VectorDB> {\n  await loadRuVector();\n\n  if (ruvectorModule && typeof ruvectorModule.createVectorDB === 'function') {\n    try {\n      return await ruvectorModule.createVectorDB(dimensions);\n    } catch (err) {\n      // Fall back to simple implementation, but make the degradation VISIBLE.\n      // A silent fall-through here turns HNSW into O(n) brute force without any\n      // signal — exactly the failure mode that masked the lock-contention bug.\n      console.warn(\n        `[vector-db] ruvector HNSW init failed, falling back to brute-force search: ${(err as Error)?.message ?? err}`\n      );\n    }\n  }\n\n  return new FallbackVectorDB(dimensions);\n}\n\n/**\n * Generate an embedding for text\n * Uses ruvector if available, falls back to hash-based embedding\n *\n * @returns The embedding vector. When using hash fallback, the returned\n *          Float32Array will have a `_warning` property (non-enumerable)\n *          indicating it lacks semantic meaning.\n */\nexport function generateEmbedding(text: string, dimensions: number = 768): Float32Array {\n  if (ruvectorModule && typeof ruvectorModule.generateEmbedding === 'function') {","sourceCodeStart":264,"sourceCodeEnd":300,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/ruvector/vector-db.ts#L264-L300","documentation":"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.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/ruvector/vector-db.ts:282 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["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."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}