@@ -411,24 +411,28 @@ delete_in_khepri(QueueName) ->
411411 delete_in_khepri (QueueName , false ).
412412
413413delete_in_khepri (QueueName , OnlyDurable ) ->
414+ Path = khepri_queue_path (QueueName ),
414415 FeatureFlag = true ,
415416 case FeatureFlag of
416417 true ->
417- Path = khepri_queue_path (QueueName ),
418- {ok , Deleted } = khepri_adv :delete (Path ),
419- Deletions = rabbit_db_binding :khepri_ret_to_deletions (
420- Deleted , OnlyDurable ),
421- Deletions ;
418+ case khepri_adv :delete (Path ) of
419+ {ok , #{Path := #{data := _ }} = Deleted } ->
420+ % % we want to execute some things, as decided by
421+ % % rabbit_exchange, after the transaction.
422+ rabbit_db_binding :khepri_ret_to_deletions (
423+ Deleted , OnlyDurable );
424+ {ok , _ } ->
425+ ok
426+ end ;
422427 false ->
428+ UsesUniformWriteRet = try
429+ khepri_tx :does_api_comply_with (uniform_write_ret )
430+ catch
431+ error :undef ->
432+ false
433+ end ,
423434 rabbit_khepri :transaction (
424435 fun () ->
425- Path = khepri_queue_path (QueueName ),
426- UsesUniformWriteRet = try
427- khepri_tx :does_api_comply_with (uniform_write_ret )
428- catch
429- error :undef ->
430- false
431- end ,
432436 Ret1 = khepri_tx_adv :delete (Path ),
433437 % logger:alert("Deleted queue ret = ~p", [Ret1]),
434438 case Ret1 of
0 commit comments