validate: promote invalid values to an error