This seems like an abuse of ValidationError, but maybe we can allow it for now until there is a better error class to use here in core.