{"record":{"id":"a1e24f181a58b3f9","repo":"rohitg00/ai-engineering-from-scratch","slug":"packet-root-must-be-an-object-a1e24f","errorCode":null,"errorMessage":"packet root must be an object","messagePattern":"packet root must be an object","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"certifications/claude/lessons/06-governance-safety-and-responsible-use/code/main.py","lineNumber":72,"sourceCode":"            errors.append(\"approvalPacket needs an authorizedRole\")\n        if approval.get(\"untrustedContentCanAuthorize\") is not False:\n            errors.append(\"untrusted content cannot authorize action\")\n        for field in (\"decision\", \"evidence\", \"uncertainty\"):\n            if not str(approval.get(field, \"\")).strip():\n                errors.append(f\"approvalPacket.{field} is required\")\n    return errors\n\n\ndef score_control_map(packet: dict[str, Any]) -> dict[str, Any]:\n    errors = validate_control_map(packet)\n    control_count = 3 * len(packet.get(\"risks\", [])) if isinstance(packet.get(\"risks\"), list) else 0\n    return {\"passed\": not errors, \"errors\": errors, \"controlCount\": control_count, \"reviewRequired\": review_required(packet.get(\"consequence\", \"high\"), bool(packet.get(\"reversible\"))), \"confidenceDoesNotAuthorize\": True}\n\n\ndef load_packet(path: Path) -> dict[str, Any]:\n    value = json.loads(path.read_text(encoding=\"utf-8\"))\n    if not isinstance(value, dict):\n        raise ValueError(\"packet root must be an object\")\n    return value\n\n\nif __name__ == \"__main__\":\n    path = Path(__file__).parents[1] / \"outputs\" / \"responsible-use-control-map.json\"\n    print(json.dumps(score_control_map(load_packet(path)), indent=2))\n","sourceCodeStart":54,"sourceCodeEnd":79,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/certifications/claude/lessons/06-governance-safety-and-responsible-use/code/main.py#L54-L79","documentation":"Error \"packet root must be an object\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at certifications/claude/lessons/06-governance-safety-and-responsible-use/code/main.py:72 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}