This seems to still trigger even though the validation fails, resulting in incorrect vote results if the participation isn't created with a bang variant of ARs methods. Try using a counter cache instead.