affaan-m/ECC · error · anyhow::Error
at least one non-empty {kind} reference is required
Error message
at least one non-empty {kind} reference is required What it means
normalize_refs rejects trace/evidence reference lists that are empty or contain blank (whitespace-only) entries. It is a shared validation guard for CandidateSpec::new; it fires whenever a candidate is created without at least one meaningful `{kind}` reference string.
Source
Thrown at ecc2/src/harness_eval.rs:261
Ok(Self::new(
serde_json::from_str(&self.canonical_config)?,
self.trace_refs.clone(),
self.evidence_refs.clone(),
)?
.id)
}
}
#[derive(Serialize)]
struct CanonicalCandidateArtifact<'a> {
config: Value,
trace_refs: &'a [String],
evidence_refs: &'a [String],
}
fn normalize_refs(kind: &str, refs: Vec<String>) -> Result<Vec<String>> {
if refs.is_empty() || refs.iter().any(|reference| reference.trim().is_empty()) {
bail!("at least one non-empty {kind} reference is required");
}
if refs.len() > 100 || refs.iter().any(|reference| reference.len() > 4096) {
bail!("{kind} references exceed bounded limits");
}
let mut normalized = refs
.into_iter()
.map(|reference| reference.trim().to_string())
.collect::<Vec<_>>();
normalized.sort();
normalized.dedup();
Ok(normalized)
}
fn sha256_hex(bytes: &[u8]) -> String {
Sha256::digest(bytes)
.iter()
.map(|byte| format!("{byte:02x}"))
.collect()View on GitHub (pinned to 06c5e118c4)
Solutions
- Provide at least one non-empty reference of the required kind in the evidence payload.
- Check for whitespace-only or empty-string references that are being rejected.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at ecc2/src/harness_eval.rs:261 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/e2d925c2e0cb6a81.
Report an issue: GitHub.