{"record":{"id":"0dbbde35ab5195da","repo":"ruvnet/ruflo","slug":"embeddings-no-real-embedding-provider-available","errorCode":null,"errorMessage":"[embeddings] No real embedding provider available for 'auto'. Install agentic-flow OR @xenova/transformers, OR pass provider:\"openai\" with apiKey, OR explicitly request provider:\"mock\" if mock embeddings are intentional (tests only).","messagePattern":"\\[embeddings\\] No real embedding provider available for 'auto'\\. Install agentic-flow OR @xenova/transformers, OR pass provider:\"openai\" with apiKey, OR explicitly request provider:\"mock\" if mock embeddings are intentional \\(tests only\\)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/embeddings/src/embedding-service.ts","lineNumber":996,"sourceCode":"      }\n    }\n\n    // Try transformers (good quality, built-in)\n    try {\n      const service = new TransformersEmbeddingService({\n        provider: 'transformers',\n        model: rest.model ?? 'Xenova/all-MiniLM-L6-v2',\n        cacheSize: rest.cacheSize,\n      });\n      // Validate it can initialize\n      await service.embed('test');\n      return service;\n    } catch {\n      // Fall through to mock\n    }\n\n    // No real provider available — refuse to silently fall back to mock embeddings.\n    throw new Error(\n      \"[embeddings] No real embedding provider available for 'auto'. \" +\n      'Install agentic-flow OR @xenova/transformers, OR pass provider:\"openai\" with apiKey, ' +\n      'OR explicitly request provider:\"mock\" if mock embeddings are intentional (tests only).'\n    );\n  }\n\n  // Specific provider with optional fallback\n  const createPrimary = (): IEmbeddingService => {\n    switch (provider) {\n      case 'agentic-flow':\n        return new AgenticFlowEmbeddingService({\n          provider: 'agentic-flow',\n          modelId: rest.modelId ?? 'all-MiniLM-L6-v2',\n          dimensions: rest.dimensions ?? 384,\n          cacheSize: rest.cacheSize,\n        });\n      case 'transformers':\n        return new TransformersEmbeddingService({","sourceCodeStart":978,"sourceCodeEnd":1014,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/embeddings/src/embedding-service.ts#L978-L1014","documentation":"Thrown when provider 'auto' finds no real embedding backend. Defense: probe providers in a deterministic order and require an explicit provider in production; never silently degrade to mock embeddings outside tests.","triggerScenarios":"Thrown at v3/@claude-flow/embeddings/src/embedding-service.ts:996 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install agentic-flow or @xenova/transformers so provider 'auto' has a real backend.","Pass provider:'openai' together with apiKey.","Use provider:'mock' explicitly in tests only."],"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-14T00:17:10.932Z"}