rohitg00/ai-engineering-from-scratch · error · ValueError
uncertainties must be a list
Error message
uncertainties must be a list
What it means
Error "uncertainties must be a list" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at certifications/claude/lessons/05-output-evaluation-and-validation/code/main.py:94
errors.append("schema and totals must use deterministic evaluators")
release = record.get("release")
blocker_failures = sum(claim.get("severity") == "blocker" and claim.get("result") == "fail" for claim in claims if isinstance(claim, dict))
required_failures = sum(claim.get("severity") == "required" and claim.get("result") == "fail" for claim in claims if isinstance(claim, dict))
if not isinstance(release, dict) or release.get("blockerFailures") != blocker_failures or release.get("requiredFailures") != required_failures:
errors.append("release failure counts must match claims")
elif blocker_failures and release.get("decision") != "revise":
errors.append("blocker failure requires a revise decision")
elif not str(release.get("nextAction", "")).strip():
errors.append("release nextAction is required")
if not isinstance(record.get("uncertainties"), list):
errors.append("uncertainties must be a list")
return errors
def summarize(record: dict[str, Any]) -> dict[str, Any]:
errors = validate_record(record)
if errors:
raise ValueError("; ".join(errors))
results = Counter(claim["result"] for claim in record["claims"])
return {"claims": len(record["claims"]), "results": dict(results), "decision": record["release"]["decision"], "failedClaimIds": [claim["id"] for claim in record["claims"] if claim["result"] == "fail"]}
def load_record(path: Path) -> dict[str, Any]:
value = json.loads(path.read_text(encoding="utf-8"))
if not isinstance(value, dict):
raise ValueError("record root must be an object")
return value
if __name__ == "__main__":
path = Path(__file__).parents[1] / "outputs" / "claim-validation-record.json"
record = load_record(path)
print(json.dumps({"valid": not validate_record(record), "summary": summarize(record)}, indent=2))
View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at certifications/claude/lessons/05-output-evaluation-and-validation/code/main.py:94 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/f7e4253032c047f7.
Report an issue: GitHub.