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
- Fix the underlying API error (auth, quota, model name) before retrying; retries do not help deterministic failures.
- Increase maxRetries or backoff for transient rate limits, and honor Retry-After headers.
- 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.