diff --git a/lib/leopard/message_processor.rb b/lib/leopard/message_processor.rb index fad9bfa..f2cc4b9 100644 --- a/lib/leopard/message_processor.rb +++ b/lib/leopard/message_processor.rb @@ -56,9 +56,11 @@ def base_app(handler, callbacks) lambda do |wrapper| result = execute_handler.call(wrapper, handler) process_result(wrapper, result, callbacks) + result rescue StandardError => e logger.error 'Error processing message: ', e callbacks[:on_error].call(wrapper, e) + Dry::Monads::Result::Failure.new(e) end end