diff options
| -rw-r--r-- | src/rabbit_quorum_queue.erl | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/rabbit_quorum_queue.erl b/src/rabbit_quorum_queue.erl index bf4b432253..2d44c535b3 100644 --- a/src/rabbit_quorum_queue.erl +++ b/src/rabbit_quorum_queue.erl @@ -559,9 +559,14 @@ args_policy_lookup(Name, Resolve, Q = #amqqueue{arguments = Args}) -> dead_letter_publish(undefined, _, _, _) -> ok; dead_letter_publish(X, RK, QName, ReasonMsgs) -> - {ok, Exchange} = rabbit_exchange:lookup(X), - [rabbit_dead_letter:publish(Msg, Reason, Exchange, RK, QName) - || {Reason, Msg} <- ReasonMsgs]. + case rabbit_exchange:lookup(X) of + {ok, Exchange} -> + [rabbit_dead_letter:publish(Msg, Reason, Exchange, RK, QName) + || {Reason, Msg} <- ReasonMsgs]; + {error, not_found} -> + rabbit_log:warning("Dead lettering for quorum queue ~p failed: " + "exchange ~p not found", [QName, X]) + end. %% TODO escape hack qname_to_rname(#resource{virtual_host = <<"/">>, name = Name}) -> |
