diff --git a/lib/aasm/core/event.rb b/lib/aasm/core/event.rb
index <HASH>..<HASH> 100644
--- a/lib/aasm/core/event.rb
+++ b/lib/aasm/core/event.rb
@@ -139,6 +139,7 @@ module AASM::Core
       end
 
       transitions.each do |transition|
+        transition.failures.clear #https://github.com/aasm/aasm/issues/383
         next if to_state and !Array(transition.to).include?(to_state)
         if (options.key?(:may_fire) && transition.eql?(options[:may_fire])) ||
            (!options.key?(:may_fire) && transition.allowed?(obj, *args))
Fix failures array in transition not being reset