ruvnet/ruflo · error

OpenAI provider requires apiKey

Error message

OpenAI provider requires apiKey

What it means

The async factory was building an OpenAI embedding service but rest.apiKey was empty/undefined, and the OpenAI API cannot be called without credentials. Fails fast at construction time instead of on the first embed call.

Source

Thrown at v3/@claude-flow/embeddings/src/embedding-service.ts:1020

  // Specific provider with optional fallback
  const createPrimary = (): IEmbeddingService => {
    switch (provider) {
      case 'agentic-flow':
        return new AgenticFlowEmbeddingService({
          provider: 'agentic-flow',
          modelId: rest.modelId ?? 'all-MiniLM-L6-v2',
          dimensions: rest.dimensions ?? 384,
          cacheSize: rest.cacheSize,
        });
      case 'transformers':
        return new TransformersEmbeddingService({
          provider: 'transformers',
          model: rest.model ?? 'Xenova/all-MiniLM-L6-v2',
          cacheSize: rest.cacheSize,
        });
      case 'openai':
        if (!rest.apiKey) throw new Error('OpenAI provider requires apiKey');
        return new OpenAIEmbeddingService({
          provider: 'openai',
          apiKey: rest.apiKey,
          dimensions: rest.dimensions,
          cacheSize: rest.cacheSize,
        });
      case 'rvf':
        return new RvfEmbeddingService({
          provider: 'rvf',
          dimensions: rest.dimensions ?? 384,
          cacheSize: rest.cacheSize,
        });
      case 'mock':
        return new MockEmbeddingService({
          dimensions: rest.dimensions ?? 384,
          cacheSize: rest.cacheSize,
        });
      default:

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Pass apiKey in the OpenAI provider config, sourced from your secret manager (e.g. devkey), not hardcoded.
  2. Choose a provider that does not need a key ('agentic-flow' or 'transformers') if no OpenAI key is available.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/embeddings/src/embedding-service.ts:1020 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/98cdc0295b6c9414. Report an issue: GitHub.