The usual CKAN pattern here is to use the data returned by validate in the rest of the function, as validate may also change this data as well as simply returning validation errors.