affaan-m/ECC · error · anyhow::Error
CLI evidence evaluator must be recorded-v1
Error message
CLI evidence evaluator must be recorded-v1
What it means
RecordedEvaluator::from_evidence only accepts evidence files produced by the recorded-v1 evaluator; any other `evaluator` string in the loaded RecordedEvidence is rejected. It fires when a CLI passes evidence recorded by an incompatible or unknown evaluator version.
Source
Thrown at ecc2/src/harness_eval.rs:376
health_candidate: Option<String>,
calls: Vec<(String, u64)>,
}
impl RecordedEvaluator {
#[cfg(test)]
pub fn new(scores: BTreeMap<(String, u64), f64>, health_ok: bool) -> Self {
Self {
name: "recorded-v1".into(),
scores,
health_ok,
health_candidate: None,
calls: Vec::new(),
}
}
pub fn from_evidence(evidence: RecordedEvidence) -> Result<Self> {
if evidence.evaluator != "recorded-v1" {
bail!("CLI evidence evaluator must be recorded-v1");
}
let score_count = evidence.scores.values().map(BTreeMap::len).sum::<usize>();
if score_count > 20_000 || evidence.scores.keys().any(|id| id.len() != 64) {
bail!("recorded evidence exceeds bounded score or candidate limits");
}
if evidence.health.len() != 1 {
bail!("exactly one candidate-keyed health assertion is required");
}
let (health_candidate, health_ok) = evidence
.health
.into_iter()
.next()
.context("candidate-keyed health evidence is required")?;
let scores = evidence
.scores
.into_iter()
.flat_map(|(id, values)| {
valuesView on GitHub (pinned to 06c5e118c4)
Solutions
- Set the CLI evidence evaluator field to `recorded-v1`; other evaluator kinds are not accepted here.
- Regenerate the evidence with a recorder that stamps evaluator as recorded-v1.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at ecc2/src/harness_eval.rs:376 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of affaan-m/ECC@06c5e118c4 (2026-08-18).
Data as JSON: /api/errors/94cb046fcf0c2c6e.
Report an issue: GitHub.