diff --git a/apps/emqx_rule_engine/src/emqx_rule_events.erl b/apps/emqx_rule_engine/src/emqx_rule_events.erl index b0c27cf6a..1a4562c3e 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_events.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_events.erl @@ -251,7 +251,7 @@ eventmsg_disconnected(_ClientInfo = #{ disconnected_at => DisconnectedAt }). -eventmsg_connack(_ConnInfo = #{ +eventmsg_connack(ConnInfo = #{ clientid := ClientId, clean_start := CleanStart, username := Username, @@ -259,11 +259,11 @@ eventmsg_connack(_ConnInfo = #{ sockname := SockName, proto_name := ProtoName, proto_ver := ProtoVer, - keepalive := Keepalive, - connected_at := ConnectedAt, - conn_props := ConnProps, - expiry_interval := ExpiryInterval + connected_at := ConnectedAt }, Reason) -> + Keepalive = maps:get(keepalive, ConnInfo, 0), + ConnProps = maps:get(conn_props, ConnInfo, #{}), + ExpiryInterval = maps:get(expiry_interval, ConnInfo, 0), with_basic_columns('client.connack', #{reason_code => reason(Reason), clientid => ClientId,