From df0aea63c8da153512ce2a961cef306ddcfb92d1 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..ae9845f 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