Validate form using simples-schema npm and mdg:validated-method

I’m using SimpleSchema NPM and mdg:validated-method to validate a form and I’m having trouble returning all the errors once the form has been submited. Currently, the new ValidateMethod only returns the first error in the schema. For instance name.first and name.last is required if they are both left blank the error only returns name.first required and doesn’t tell the user that they are also required to supply name.last as well.

Path: Simple-Schema

SimpleSchema.debug = true;

export const ProfileCandidate = new Mongo.Collection('profileCandidate');

const profileCandidate = new SimpleSchema({
  userId: {
    type: String,
  },
  createdAt: {
    type: Date,
  },
  name: Object,
    'name.first': String,
    'name.last': String,
  contact: Object,
    'contact.mobile': String,
  address: Object,
    'address.buildingLevel': { type: String, optional: true },
    'address.unitApartmentNumber': { type: String, optional: true },
    'address.address': String,
    'address.lat': Number,
    'address.lng': Number,
});

Path: Form.jsx

handleSubmit(event) {
  event.preventDefault();
  
  var name = {
    first: this.state.firstName,
    last: this.state.lastName
  }
  var contact = {
    mobile: this.state.mobile
  }
  var address = {
    buildingLevel: this.state.buildingLevel,
    unitApartmentNumber: this.state.unitApartmentNumber,
    address: this.state.address,
  }
  geocodeByAddress(this.state.address, (error, { lat, lng }) => {
    if (error) { return }
    
    if (!error) {
      insertProfileCandidate.call({name, contact, address, lat, lng}, (error) => {
        if (error) {
          console.log("error profilecandidateform: ", error);
        } 
      });
    }
  });
}

Path: Method.js

export const insertProfileCandidate = new ValidatedMethod({
  name: 'profileCandidate.insert',
  
  validate: new SimpleSchema({
    name: { type: Object },
    'name.first': { type: String },
    'name.last': { type: String },
    contact: { type: Object },
    'contact.mobile': { type: String },
    address: { type: Object },
    'address.buildingLevel': { type: String, optional: true },
    'address.unitApartmentNumber': { type: String, optional: true },
    'address.address': { type: String },
    'lat': { type: Number },
    'lng': { type: Number },
  }).validator({ clean: true }),
  
  run({name, contact, address, lat, lng}) {
    
    ProfileCandidate.insert({
      userId: this.userId,
      createdAt: new Date(),
      name: {
        first: name.first,
        last: name.last,
      },
      contact: {
        mobile: contact.mobile,
      },
      address: {
        buildingLevel: address.buildingLevel,
        unitApartmentNumber: address.unitApartmentNumber,
        address: address.address,
        lat: lat,
        lng: lng,
      }
    });
  },
});