Я заметил две вещи в вашем коде:
1 - вы используете контакты вместо контакта в SOQL.
2 - вы не указали, как он выходит из строя. Это ошибка времени выполнения или ошибка компиляции. Согласно предоставленному вами фрагменту кода, этот код будет иметь ошибку компиляции в следующих двух строках:
contacts.Ending_Balance_Date__c = account.Ending_Balance__c;
contacts.Beginning_Date__c = account.Beginning_Balance__c;
переменная учетной записи больше не доступна, так как находится вне области, в которой она была инициализирована ( л oop). Вам нужно получить значение от
contacts.Ending_Balance_Date__c = Trigger.newMap.get(contacts.AccountId).Ending_Balance__c;