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)| {
                values

View on GitHub (pinned to 06c5e118c4)

Solutions

  1. Set the CLI evidence evaluator field to `recorded-v1`; other evaluator kinds are not accepted here.
  2. 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.