If your Pydantic object validation errors look like this, the reason is simple:
2 validation errors for DetailedDemand
ordqty
__init__() takes exactly 3 positional arguments (2 given) (type=type_error)
Z
__init__() takes exactly 3 positional arguments (2 given) (type=type_error)
You’ve raised ValidationErrors in the validator, rather than ValueErrors, TypeErrors or similar. Don’t raise ValidationErrors there, those are for collecting other errors.