ruvnet/ruflo · error

Max retries exceeded

Error message

Max retries exceeded

What it means

Thrown when the OpenAI embedding request exhausts all retries. Defense: retry only on transient statuses with backoff, cap attempts, and surface the last underlying error so callers can distinguish quota from outage.

Source

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

        if (!response.ok) {
          const error = await response.text();
          throw new Error(`OpenAI API error: ${response.status} - ${error}`);
        }

        return await response.json() as {
          data: Array<{ embedding: number[] }>;
          usage?: { prompt_tokens: number; total_tokens: number };
        };
      } catch (error) {
        if (attempt === this.maxRetries - 1) {
          throw error;
        }
        // Exponential backoff
        await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 100));
      }
    }

    throw new Error('Max retries exceeded');
  }
}

// ============================================================================
// Transformers.js Embedding Service
// ============================================================================

export class TransformersEmbeddingService extends BaseEmbeddingService {
  readonly provider: EmbeddingProvider = 'transformers';
  private pipeline: any = null;
  private readonly modelName: string;
  private initialized = false;

  constructor(config: TransformersEmbeddingConfig) {
    super(config);
    this.modelName = config.model ?? 'Xenova/all-MiniLM-L6-v2';
  }

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Fix the underlying API error (auth, quota, model name) before retrying; retries do not help deterministic failures.
  2. Increase maxRetries or backoff for transient rate limits, and honor Retry-After headers.
  3. Fall back to another embedding provider (transformers or agentic-flow) when OpenAI stays unavailable.
Defensive patterns

Strategy: retry

When it happens

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