rohitg00/ai-engineering-from-scratch · error · ValueError
enum must be a list
Error message
enum must be a list
What it means
Error "enum must be a list" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/19-capstone-projects/21-tool-registry-schema-validation/code/main.py:123
_walk(rec.schema, args, "", errors)
if errors:
return errors
return Ok()
def validate_schema_shape(schema: dict) -> None:
"""Reject schemas using keywords outside the supported subset."""
if not isinstance(schema, dict):
raise ValueError("schema must be a dict")
unknown = set(schema.keys()) - ALLOWED_KEYWORDS
if unknown:
raise ValueError(f"unsupported schema keywords: {sorted(unknown)}")
t = schema.get("type")
if t is not None and t not in PRIMITIVE_TYPE_MAP:
raise ValueError(f"unsupported type: {t!r}")
enum_vals = schema.get("enum")
if enum_vals is not None and not isinstance(enum_vals, list):
raise ValueError("enum must be a list")
min_len = schema.get("minLength")
if min_len is not None:
if isinstance(min_len, bool) or not isinstance(min_len, int) or min_len < 0:
raise ValueError("minLength must be a non-negative integer")
max_len = schema.get("maxLength")
if max_len is not None:
if isinstance(max_len, bool) or not isinstance(max_len, int) or max_len < 0:
raise ValueError("maxLength must be a non-negative integer")
if min_len is not None and max_len is not None and min_len > max_len:
raise ValueError("minLength cannot be greater than maxLength")
pattern = schema.get("pattern")
if pattern is not None and not isinstance(pattern, str):
raise ValueError("pattern must be a string")
props = schema.get("properties")
if props is not None:
if not isinstance(props, dict):
raise ValueError("properties must be a dict")
for pname, psub in props.items():View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/19-capstone-projects/21-tool-registry-schema-validation/code/main.py:123 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/15650058867b60bd.
Report an issue: GitHub.