diff --git a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl index 74396dbc8..aac38ee37 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl @@ -361,8 +361,9 @@ do_handle_action(RuleId, {bridge, BridgeType, BridgeName, ResId}, Selected, _Env Result -> Result end; -do_handle_action(RuleId, #{mod := Mod, func := Func, args := Args}, Selected, Envs) -> +do_handle_action(RuleId, #{mod := Mod, func := Func} = Action, Selected, Envs) -> %% the function can also throw 'out_of_service' + Args = maps:get(args, Action, []), Result = Mod:Func(Selected, Envs, Args), inc_action_metrics(RuleId, Result), Result.