ruvnet/ruflo · error · DarwinUnavailableError
Darwin archive exceeded candidate-count budget
Error message
Darwin archive exceeded candidate-count budget
What it means
The Darwin archive run completed but returned more candidates than the maxCandidates cap (default 256), violating the declared candidate-count budget. Excess is treated as a budget breach rather than silently truncating: the proposal fails closed with DarwinUnavailableError instead of forwarding an over-budget batch.
Solutions
- Reduce the number of candidates in the archive
- Raise the candidate-count budget explicitly if the evaluation is intentional
Example fix
Reduce the number of Darwin archive candidates or raise the candidate-count budget in the flywheel proposer configuration.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at v3/@claude-flow/cli/src/services/flywheel-proposer.ts:225 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/e21897db523bb2d9.
Report an issue: GitHub.
Appendix: source
Thrown at v3/@claude-flow/cli/src/services/flywheel-proposer.ts:225
budget: {
maxEvaluationCostMicros: input.safetyEnvelope.maxEvaluationCostMicros,
maxConcurrency: input.maxConcurrency ?? 2,
maxWallTimeMs,
},
}),
new Promise<never>((_, reject) => {
timeout = setTimeout(() => reject(new DarwinUnavailableError('Darwin exceeded wall-time budget')), maxWallTimeMs);
timeout.unref?.();
}),
]).finally(() => {
if (timeout) clearTimeout(timeout);
});
if (!result.completed) {
if (input.mode === 'darwin') throw new DarwinUnavailableError(result.reason ?? 'Darwin archive incomplete');
return runLocal(`darwin-incomplete:${result.reason ?? 'unknown'}`);
}
if (result.candidates.length > (input.maxCandidates ?? 256)) {
throw new DarwinUnavailableError('Darwin archive exceeded candidate-count budget');
}
const evaluationCost = result.candidates.reduce(
(sum, candidate) => sum + candidate.resources.evaluationCostMicros,
0,
);
if (evaluationCost > input.safetyEnvelope.maxEvaluationCostMicros) {
throw new DarwinUnavailableError('Darwin archive exceeded evaluation-cost budget');
}
return finalizeArchive({
requested: input.mode,
effective: 'darwin',
promotionAllowed: true,
baselineRef,
safetyEnvelope: input.safetyEnvelope,
seed: input.seed,
candidates: result.candidates,
completed: true,
});View on GitHub (pinned to fa13ee4ad6)