From ce5e055a8a00565fb9878553dd638e8096b8b0aa Mon Sep 17 00:00:00 2001 From: pmcclory Date: Mon, 27 Apr 2026 15:09:14 -0400 Subject: [PATCH] feat: surface handler results to middleware chain --- lib/leopard/message_processor.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/leopard/message_processor.rb b/lib/leopard/message_processor.rb index fad9bfa..0323a4e 100644 --- a/lib/leopard/message_processor.rb +++ b/lib/leopard/message_processor.rb @@ -56,9 +56,13 @@ def base_app(handler, callbacks) lambda do |wrapper| result = execute_handler.call(wrapper, handler) process_result(wrapper, result, callbacks) + # TODO: document that middleware functions are expected to propagate result + # https://github.com/rubyists/leopard/issues/48 + result rescue StandardError => e logger.error 'Error processing message: ', e callbacks[:on_error].call(wrapper, e) + Dry::Monads::Result::Failure.new(e) end end