消息确认事件疑问

使用场景
emqx docker 6.1.0
1: 通过建立规则$events/message/acked 获取响应主题和对比数据. 然后重发布响应主题
2: mqttx 建立发布A和订阅B 2个客户端
订阅客户端B 设定 clear start = true时 . 规则能够命中
订阅客户端B 设定 clear start = false 时 . 规则无法命中. 如果emqx 关闭持久化 .又可以命中规则

是设定如此吗? 还是bug
调试规则:

控制台输出结果: 左边是clear start =true ,右边是 clear start=false


QOS 是 0 的话,没有 ack 的。

2次操作是一样的. 唯一不同就是 clear start 不一样.
发布的消息都是qos1 . 日志里出来的是qos 0 .

建议你用 tcmpdump 下来用 wireshark 看看消息。
我的认知里面日志的内容,上面写的QOS 不一样,99.999% 就是不一样。EMQX 的日志不会去改消息格式的。

mqttx 发布消息
image

  1. 输出主题

    结果 qos =1 正确
  2. 消息投递

    结果: 出现异常
  3. 消息响应

    结果 : qos=0 不正确

clear start =true 时 ,第二个消息投递规则 正确 没有出现异常.
是否就是这个问题??

docker v6.1.0 启用了 持久化


其他未修改任何配置.
麻烦看是否能重现

不是 bug,本质是 QoS 被降到了 0,所以 $events/message/acked 不会触发。规则里这个事件只在 QoS1/2 收到 ACK 时触发。
clean_start=false 会复用旧会话,订阅也沿用旧的 QoS。你之前如果订阅过 QoS0,后面即使发布 QoS1,实际投递 QoS=0(min(pubQoS, subQoS)),所以你看到日志里是 qos 0,规则也不命中。clean_start=true 会新建会话+新订阅,所以正常。
先确认订阅 QoS:

  • 在 EMQX 看:emqx ctl subscriptions list <clientid>
  • 或 MQTTX 里重新订阅时明确 QoS1
    修复方式(选一):
  • 删除旧会话/订阅:用新的 clientid,或 emqx ctl clients kick <clientid>,或连接时把 session expiry 设为 0 清掉会话
  • clean_start=false 但重新订阅 QoS1(先 UNSUB 再 SUB)
    如果还有问题,贴一下规则 SQL 和 clientid(不要贴图,贴规则 text)。

mqttx 新建客户端 mqttx_66d26a62 ,订阅主题qos1 .问题依旧. (一直都是qos1 没用过qos 0)


规则 1 :SELECT * FROM "#"
规则2 : SELECT * FROM "$events/message/delivered"
规则3 :SELECT pub_props.'Response-Topic' as response_topic,pub_props.'Correlation-Data' correlationData, * FROM "$events/message/acked"

规则2 输出报异常

不好意思,规则 2 的报错,无论是QOS1,还是 0,都没有复现,能提供一下完整的 debug 日志么。



2026-02-26T10:17:24.253753+00:00 [debug] tag: RULE_SQL_EXEC, clientid: Gateway_007, msg: SQL_yielded_result, mfa: emqx_rule_runtime:trace_rule_sql/3(991), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, result: #{flags => #{dup => false,retain => false},id => <<"00064BB76D3FA1E5F4450001494F0002">>,node => 'emqx@127.0.0.1',timestamp => 1772101044249,peername => <<"172.100.239.1:16565">>,metadata => #{namespace => global,rule_id => <<"rule_gmzw">>},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 0,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101044249}
2026-02-26T10:17:24.253993+00:00 [debug] tag: ACTION, clientid: Gateway_007, msg: call_action_function, mfa: emqx_rule_runtime:trace_action_bridge/5(975), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, action_info: #{mod => emqx_rule_actions,func => console}
[rule action] rule_gmzw
	Action Data: #{flags => #{dup => false,retain => false},
                       id => <<"00064BB76D3FA1E5F4450001494F0002">>,
                       node => 'emqx@127.0.0.1',timestamp => 1772101044249,
                       peername => <<"172.100.239.1:16565">>,
                       metadata =>
                           #{namespace => global,rule_id => <<"rule_gmzw">>},
                       event => 'message.delivered',
                       payload => <<"{\n  \"test\": 2\n}">>,
                       username => <<"Gateway_007">>,
                       peerhost => <<"172.100.239.1">>,
                       topic => <<"test/1/100">>,qos => 0,
                       clientid => <<"Gateway_007">>,
                       pub_props =>
                           #{'User-Property' => #{<<"11">> => <<"22">>},
                             'User-Property-Pairs' =>
                                 [#{value => <<"22">>,key => <<"11">>}],
                             'Payload-Format-Indicator' => 1,
                             'Response-Topic' => <<"ddd">>,
                             'Correlation-Data' => <<"fff">>},
                       from_clientid => <<"Gateway_007">>,
                       from_username => <<"Gateway_007">>,
                       publish_received_at => 1772101044249}
	Envs: #{flags => #{dup => false,retain => false},
                id => <<"00064BB76D3FA1E5F4450001494F0002">>,
                node => 'emqx@127.0.0.1',timestamp => 1772101044249,
                peername => <<"172.100.239.1:16565">>,
                metadata =>
                    #{matched => <<"$events/message/delivered">>,
                      namespace => global,
                      trigger => <<"$events/message/delivered">>,
                      rule_id => <<"rule_gmzw">>},
                headers =>
                    #{peername => {{172,100,239,1},16565},
                      protocol => mqtt,username => <<"Gateway_007">>,
                      peerhost => {172,100,239,1},
                      properties =>
                          #{'User-Property' => [{<<"11">>,<<"22">>}],
                            'Payload-Format-Indicator' => 1,
                            'Response-Topic' => <<"ddd">>,
                            'Correlation-Data' => <<"fff">>},
                      proto_ver => 5,client_attrs => #{}},
                event => 'message.delivered',
                payload => <<"{\n  \"test\": 2\n}">>,
                username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,
                topic => <<"test/1/100">>,qos => 0,
                clientid => <<"Gateway_007">>,
                pub_props =>
                    #{'User-Property' => #{<<"11">> => <<"22">>},
                      'User-Property-Pairs' =>
                          [#{value => <<"22">>,key => <<"11">>}],
                      'Payload-Format-Indicator' => 1,
                      'Response-Topic' => <<"ddd">>,
                      'Correlation-Data' => <<"fff">>},
                from_clientid => <<"Gateway_007">>,
                from_username => <<"Gateway_007">>,
                publish_received_at => 1772101044249}
2026-02-26T10:17:24.254121+00:00 [debug] tag: QUERY_RENDER, clientid: Gateway_007, msg: action_template_rendered, mfa: emqx_trace:do_rendered_action_template/2(160), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, result: #{selected => #{flags => #{dup => false,retain => false},id => <<"00064BB76D3FA1E5F4450001494F0002">>,node => 'emqx@127.0.0.1',timestamp => 1772101044249,peername => <<"172.100.239.1:16565">>,metadata => #{namespace => global,rule_id => <<"rule_gmzw">>},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 0,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101044249},environment => #{flags => #{dup => false,retain => false},id => <<"00064BB76D3FA1E5F4450001494F0002">>,node => 'emqx@127.0.0.1',timestamp => 1772101044249,peername => <<"172.100.239.1:16565">>,metadata => #{matched => <<"$events/message/delivered">>,namespace => global,trigger => <<"$events/message/delivered">>,rule_id => <<"rule_gmzw">>},headers => #{peername => {{172,100,239,1},16565},protocol => mqtt,username => <<"Gateway_007">>,peerhost => {172,100,239,1},properties => #{'User-Property' => [{<<"11">>,<<"22">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},proto_ver => 5,client_attrs => #{}},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 0,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101044249}}, action_id: #{mod => emqx_rule_actions,func => console}
2026-02-26T10:17:24.255345+00:00 [debug] tag: ACTION, msg: action_success, mfa: emqx_rule_runtime:trace_action_bridge/5(975), pid: <0.84303.0>, result: ok, namespace: global, rule_id: <<"rule_gmzw">>, action_info: #{mod => emqx_rule_actions,func => console}
2026-02-26T10:17:24.255438+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: mqtt_packet_sent, mfa: emqx_connection:serialize_and_inc_stats/2(973), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, packet: PUBLISH(Q0, R0, D0, Topic=test/1/100, PacketId=undefined, Payload(text)={, "test": 2, }), payload_encode: text
2026-02-26T10:17:40.705485+00:00 [debug] tag: SOCKET, clientid: mqttable-c3931ed6, msg: emqx_connection_terminated, mfa: emqx_connection:terminate/2(648), peername: 172.100.239.1:40154, username: dddd, pid: <0.78384.0>, reason: {shutdown,kicked}
2026-02-26T10:17:40.707250+00:00 [info] clientid: mqttable-c3931ed6, msg: terminate, mfa: emqx_connection:terminate/2(653), peername: 172.100.239.1:40154, username: dddd, pid: <0.78384.0>, reason: {shutdown,kicked}
2026-02-26T10:17:40.727770+00:00 [debug] msg: emqx_cm_clean_down, mfa: emqx_cm:do_clean_down/2(847), pid: <0.4532.0>, client_id: <<"mqttable-c3931ed6">>
2026-02-26T10:18:06.427785+00:00 [debug] clientid: Gateway_007, msg: cancel_stats_timer, mfa: emqx_connection:cancel_stats_timer/1(469), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>
2026-02-26T10:18:24.171068+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: raw_bin_received, mfa: emqx_connection:on_bytes_in/3(765), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, size: 2, type: hex, bin: C000
2026-02-26T10:18:24.177731+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: mqtt_packet_received, mfa: emqx_connection:handle_msg/2(557), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, packet: PINGREQ(Q0, R0, D0), payload_encode: text
2026-02-26T10:18:24.179676+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: mqtt_packet_sent, mfa: emqx_connection:serialize_and_inc_stats/2(973), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, packet: PINGRESP(Q0, R0, D0), payload_encode: text
2026-02-26T10:18:24.534324+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: raw_bin_received, mfa: emqx_connection:on_bytes_in/3(765), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, size: 55, type: hex, bin: 3235000A746573742F312F31303041771701010800036464640900036666662600023131000232327B0A20202274657374223A20320A7D
2026-02-26T10:18:24.535624+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: mqtt_packet_received, mfa: emqx_connection:handle_msg/2(557), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, packet: PUBLISH(Q1, R0, D0, Topic=test/1/100, PacketId=16759, Payload(text)={, "test": 2, }), payload_encode: text
2026-02-26T10:18:24.536641+00:00 [debug] tag: AUTHZ, clientid: Gateway_007, msg: authorization_module_ignore, mfa: emqx_authz:log_trace/6(580), peername: 172.100.239.1:16565, username: Gateway_007, topic: test/1/100, pid: <0.84303.0>, module: emqx_authz_client_info, action: PUBLISH(Q1,R0), authorize_type: client_info
2026-02-26T10:18:24.537235+00:00 [debug] tag: AUTHZ, clientid: Gateway_007, msg: authorization_matched_allow, mfa: emqx_authz:log_trace/6(596), peername: 172.100.239.1:16565, username: Gateway_007, topic: test/1/100, pid: <0.84303.0>, module: emqx_authz_file, action: PUBLISH(Q1,R0), authorize_type: file
2026-02-26T10:18:24.537413+00:00 [debug] tag: AUTHZ, clientid: Gateway_007, msg: authorization_permission_allowed, mfa: emqx_access_control:do_log_result/3(276), peername: 172.100.239.1:16565, username: Gateway_007, topic: test/1/100, pid: <0.84303.0>, source: file, action: PUBLISH(Q1,R0)
2026-02-26T10:18:24.537733+00:00 [debug] tag: PUBLISH, clientid: Gateway_007, msg: publish_to, mfa: emqx_trace:publish/1(127), peername: 172.100.239.1:16565, username: Gateway_007, topic: test/1/100, pid: <0.84303.0>, payload: {, "test": 2, }, payload_encode: text
2026-02-26T10:18:24.539681+00:00 [debug] tag: MQTT, clientid: Gateway_007, msg: mqtt_packet_sent, mfa: emqx_connection:serialize_and_inc_stats/2(973), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, packet: PUBACK(Q0, R0, D0, PacketId=16759, ReasonCode=0), payload_encode: text
2026-02-26T10:18:24.544652+00:00 [debug] tag: RULE_SQL_EXEC, clientid: Gateway_007, msg: rule_activated, mfa: emqx_rule_runtime:trace_rule_sql/3(991), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, input: #{flags => #{dup => false,retain => false},id => <<"00064BB770D7901AF4450001494F0003">>,node => 'emqx@127.0.0.1',timestamp => 1772101104544,peername => <<"172.100.239.1:16565">>,metadata => #{namespace => global,rule_id => <<"rule_gmzw">>},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 1,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101104537}, environment: #{metadata => #{matched => <<"$events/message/delivered">>,trigger => <<"$events/message/delivered">>},headers => #{peername => {{172,100,239,1},16565},protocol => mqtt,username => <<"Gateway_007">>,peerhost => {172,100,239,1},properties => #{'User-Property' => [{<<"11">>,<<"22">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},proto_ver => 5,client_attrs => #{}}}
2026-02-26T10:18:24.545335+00:00 [debug] tag: RULE_SQL_EXEC, clientid: Gateway_007, msg: SQL_yielded_result, mfa: emqx_rule_runtime:trace_rule_sql/3(991), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, result: #{flags => #{dup => false,retain => false},id => <<"00064BB770D7901AF4450001494F0003">>,node => 'emqx@127.0.0.1',timestamp => 1772101104544,peername => <<"172.100.239.1:16565">>,metadata => #{namespace => global,rule_id => <<"rule_gmzw">>},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 1,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101104537}
2026-02-26T10:18:24.545953+00:00 [debug] tag: ACTION, clientid: Gateway_007, msg: call_action_function, mfa: emqx_rule_runtime:trace_action_bridge/5(975), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, action_info: #{mod => emqx_rule_actions,func => console}
[rule action] rule_gmzw
	Action Data: #{flags => #{dup => false,retain => false},
                       id => <<"00064BB770D7901AF4450001494F0003">>,
                       node => 'emqx@127.0.0.1',timestamp => 1772101104544,
                       peername => <<"172.100.239.1:16565">>,
                       metadata =>
                           #{namespace => global,rule_id => <<"rule_gmzw">>},
                       event => 'message.delivered',
                       payload => <<"{\n  \"test\": 2\n}">>,
                       username => <<"Gateway_007">>,
                       peerhost => <<"172.100.239.1">>,
                       topic => <<"test/1/100">>,qos => 1,
                       clientid => <<"Gateway_007">>,
                       pub_props =>
                           #{'User-Property' => #{<<"11">> => <<"22">>},
                             'User-Property-Pairs' =>
                                 [#{value => <<"22">>,key => <<"11">>}],
                             'Payload-Format-Indicator' => 1,
                             'Response-Topic' => <<"ddd">>,
                             'Correlation-Data' => <<"fff">>},
                       from_clientid => <<"Gateway_007">>,
                       from_username => <<"Gateway_007">>,
                       publish_received_at => 1772101104537}
	Envs: #{flags => #{dup => false,retain => false},
                id => <<"00064BB770D7901AF4450001494F0003">>,
                node => 'emqx@127.0.0.1',timestamp => 1772101104544,
                peername => <<"172.100.239.1:16565">>,
                metadata =>
                    #{matched => <<"$events/message/delivered">>,
                      namespace => global,
                      trigger => <<"$events/message/delivered">>,
                      rule_id => <<"rule_gmzw">>},
                headers =>
                    #{peername => {{172,100,239,1},16565},
                      protocol => mqtt,username => <<"Gateway_007">>,
                      peerhost => {172,100,239,1},
                      properties =>
                          #{'User-Property' => [{<<"11">>,<<"22">>}],
                            'Payload-Format-Indicator' => 1,
                            'Response-Topic' => <<"ddd">>,
                            'Correlation-Data' => <<"fff">>},
                      proto_ver => 5,client_attrs => #{}},
                event => 'message.delivered',
                payload => <<"{\n  \"test\": 2\n}">>,
                username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,
                topic => <<"test/1/100">>,qos => 1,
                clientid => <<"Gateway_007">>,
                pub_props =>
                    #{'User-Property' => #{<<"11">> => <<"22">>},
                      'User-Property-Pairs' =>
                          [#{value => <<"22">>,key => <<"11">>}],
                      'Payload-Format-Indicator' => 1,
                      'Response-Topic' => <<"ddd">>,
                      'Correlation-Data' => <<"fff">>},
                from_clientid => <<"Gateway_007">>,
                from_username => <<"Gateway_007">>,
                publish_received_at => 1772101104537}
2026-02-26T10:18:24.546153+00:00 [debug] tag: QUERY_RENDER, clientid: Gateway_007, msg: action_template_rendered, mfa: emqx_trace:do_rendered_action_template/2(160), peername: 172.100.239.1:16565, username: Gateway_007, pid: <0.84303.0>, result: #{selected => #{flags => #{dup => false,retain => false},id => <<"00064BB770D7901AF4450001494F0003">>,node => 'emqx@127.0.0.1',timestamp => 1772101104544,peername => <<"172.100.239.1:16565">>,metadata => #{namespace => global,rule_id => <<"rule_gmzw">>},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 1,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101104537},environment => #{flags => #{dup => false,retain => false},id => <<"00064BB770D7901AF4450001494F0003">>,node => 'emqx@127.0.0.1',timestamp => 1772101104544,peername => <<"172.100.239.1:16565">>,metadata => #{matched => <<"$events/message/delivered">>,namespace => global,trigger => <<"$events/message/delivered">>,rule_id => <<"rule_gmzw">>},headers => #{peername => {{172,100,239,1},16565},protocol => mqtt,username => <<"Gateway_007">>,peerhost => {172,100,239,1},properties => #{'User-Property' => [{<<"11">>,<<"22">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},proto_ver => 5,client_attrs => #{}},event => 'message.delivered',payload => <<"{\n  \"test\": 2\n}">>,username => <<"Gateway_007">>,peerhost => <<"172.100.239.1">>,topic => <<"test/1/100">>,qos => 1,clientid => <<"Gateway_007">>,pub_props => #{'User-Property' => #{<<"11">> => <<"22">>},'User-Property-Pairs' => [#{value => <<"22">>,key => <<"11">>}],'Payload-Format-Indicator' => 1,'Response-Topic' => <<"ddd">>,'Correlation-Data' => <<"fff">>},from_clientid => <<"Gateway_007">>,from_username => <<"Gateway_007">>,publish_received_at => 1772101104537}}, action_id: #{mod => emqx_rule_actions,func => console}
2026-02-26T10:18:24.548795+00:00 [debug] tag: ACTION, msg: action_success, mfa: emqx_rule_runtime:trace_action_bridge/5(975), pid: <0.84303.0>, result: ok, namespace: global, rule_id: <<"rule_gmzw">>, action_info: #{mod => emqx_rule_actions,func => console}

有没有配置 启用持久化?

[rule action] rule_6v0c
1Panel-emqx-rMn5  | 	Action Data: #{flags => #{dup => false,retain => false},
1Panel-emqx-rMn5  |                        id => <<"00064BB77B62D1A139EE000112C20001">>,
1Panel-emqx-rMn5  |                        node => '1Panel-emqx-rMn5@1panel.dev',
1Panel-emqx-rMn5  |                        timestamp => 1772101281436,
1Panel-emqx-rMn5  |                        peername => <<"10.10.10.44:49975">>,
1Panel-emqx-rMn5  |                        metadata =>
1Panel-emqx-rMn5  |                            #{namespace => global,rule_id => <<"rule_6v0c">>},
1Panel-emqx-rMn5  |                        event => 'message.publish',
1Panel-emqx-rMn5  |                        payload => <<"222222222222">>,username => <<"test">>,
1Panel-emqx-rMn5  |                        peerhost => <<"10.10.10.44">>,client_attrs => #{},
1Panel-emqx-rMn5  |                        topic => <<"testtopic/22222222222">>,
1Panel-emqx-rMn5  |                        clientid => <<"mqttx_cdac1997">>,qos => 1,
1Panel-emqx-rMn5  |                        pub_props =>
1Panel-emqx-rMn5  |                            #{'User-Property' => #{},
1Panel-emqx-rMn5  |                              'Payload-Format-Indicator' => 0,
1Panel-emqx-rMn5  |                              'Response-Topic' => <<"resp/msg.ack">>,
1Panel-emqx-rMn5  |                              'Correlation-Data' => <<"11">>},
1Panel-emqx-rMn5  |                        publish_received_at => 1772101281436}
1Panel-emqx-rMn5  | 	Envs: #{flags => #{dup => false,retain => false},
1Panel-emqx-rMn5  |                 id => <<"00064BB77B62D1A139EE000112C20001">>,
1Panel-emqx-rMn5  |                 node => '1Panel-emqx-rMn5@1panel.dev',
1Panel-emqx-rMn5  |                 timestamp => 1772101281436,
1Panel-emqx-rMn5  |                 peername => <<"10.10.10.44:49975">>,
1Panel-emqx-rMn5  |                 metadata =>
1Panel-emqx-rMn5  |                     #{matched => <<"#">>,namespace => global,
1Panel-emqx-rMn5  |                       trigger => <<"testtopic/22222222222">>,
1Panel-emqx-rMn5  |                       rule_id => <<"rule_6v0c">>},
1Panel-emqx-rMn5  |                 headers =>
1Panel-emqx-rMn5  |                     #{peername => {{10,10,10,44},49975},
1Panel-emqx-rMn5  |                       protocol => mqtt,username => <<"test">>,
1Panel-emqx-rMn5  |                       peerhost => {10,10,10,44},
1Panel-emqx-rMn5  |                       properties =>
1Panel-emqx-rMn5  |                           #{'Payload-Format-Indicator' => 0,
1Panel-emqx-rMn5  |                             'Response-Topic' => <<"resp/msg.ack">>,
1Panel-emqx-rMn5  |                             'Correlation-Data' => <<"11">>},
1Panel-emqx-rMn5  |                       proto_ver => 5,client_attrs => #{}},
1Panel-emqx-rMn5  |                 event => 'message.publish',payload => <<"222222222222">>,
1Panel-emqx-rMn5  |                 username => <<"test">>,peerhost => <<"10.10.10.44">>,
1Panel-emqx-rMn5  |                 client_attrs => #{},topic => <<"testtopic/22222222222">>,
1Panel-emqx-rMn5  |                 clientid => <<"mqttx_cdac1997">>,qos => 1,
1Panel-emqx-rMn5  |                 pub_props =>
1Panel-emqx-rMn5  |                     #{'User-Property' => #{},'Payload-Format-Indicator' => 0,
1Panel-emqx-rMn5  |                       'Response-Topic' => <<"resp/msg.ack">>,
1Panel-emqx-rMn5  |                       'Correlation-Data' => <<"11">>},
1Panel-emqx-rMn5  |                 publish_received_at => 1772101281436}
1Panel-emqx-rMn5  | 2026-02-26T18:21:21.440001+08:00 [error] clientid: mqttx_66d26a62, msg: hook_callback_exception, peername: 10.10.10.44:63208, username: test, reason: function_clause, stacktrace: [{emqx_guid,to_hexstr,[<<>>],[{file,"emqx_guid.erl"},{line,133}]},{emqx_rule_events,eventmsg_delivered,2,[{file,"emqx_rule_events.erl"},{line,781}]},{emqx_rule_events,apply_event,3,[{file,"emqx_rule_events.erl"},{line,918}]},{emqx_rule_events,on_message_delivered,3,[{file,"emqx_rule_events.erl"},{line,322}]},{emqx_hooks,safe_execute,2,[{file,"emqx_hooks.erl"},{line,197}]},{emqx_hooks,do_run_fold,3,[{file,"emqx_hooks.erl"},{line,177}]},{emqx_channel,do_deliver,2,[{file,"emqx_channel.erl"},{line,3340}]},{emqx_channel,handle_out,3,[{file,"emqx_channel.erl"},{line,1332}]},{emqx_connection,with_channel,3,[{file,"emqx_connection.erl"},{line,885}]},{emqx_connection,process_msg,2,[{file,"emqx_connection.erl"},{line,504}]},{emqx_connection,handle_recv,3,[{file,"emqx_connection.erl"},{line,435}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,344}]}], exception: error, callback_module: emqx_rule_events, callback_args: [#{peername => {{10,10,10,44},63208},protocol => mqtt,username => <<"test">>,peerhost => {10,10,10,44},client_attrs => #{},listener => 'tcp:default',peersni => undefined,clientid => <<"mqttx_66d26a62">>,enable_authn => true,mountpoint => undefined,is_superuser => false,is_bridge => false,zone => default,sockport => 1883,auth_expire_at => undefined},{message,<<>>,1,<<"mqttx_cdac1997">>,#{dup => false,sys => false,retain => false},#{peername => {{10,10,10,44},49975},protocol => mqtt,username => <<"test">>,peerhost => {10,10,10,44},properties => #{'Payload-Format-Indicator' => 0,'Response-Topic' => <<"resp/msg.ack">>,'Correlation-Data' => <<"11">>},proto_ver => 5},<<"testtopic/22222222222">>,<<"222222222222">>,1772101281438,#{}},#{event_topic => <<"$events/message/delivered">>}], callback_function: on_message_delivered
1Panel-emqx-rMn5  | [rule action] rule_yc7t
1Panel-emqx-rMn5  | 	Action Data: #{flags => #{},
1Panel-emqx-rMn5  |                        id => <<"00064BB77B62FB0C39EE0001139B0001">>,
1Panel-emqx-rMn5  |                        node => '1Panel-emqx-rMn5@1panel.dev',
1Panel-emqx-rMn5  |                        timestamp => 1772101281446,
1Panel-emqx-rMn5  |                        peername => <<"10.10.10.44:63208">>,
1Panel-emqx-rMn5  |                        metadata =>
1Panel-emqx-rMn5  |                            #{namespace => global,rule_id => <<"rule_yc7t">>},
1Panel-emqx-rMn5  |                        event => 'message.acked',payload => <<>>,
1Panel-emqx-rMn5  |                        username => <<"test">>,peerhost => <<"10.10.10.44">>,
1Panel-emqx-rMn5  |                        topic => <<>>,clientid => <<"mqttx_66d26a62">>,
1Panel-emqx-rMn5  |                        qos => 0,
1Panel-emqx-rMn5  |                        puback_props => #{'User-Property' => #{}},
1Panel-emqx-rMn5  |                        pub_props => #{'User-Property' => #{}},
1Panel-emqx-rMn5  |                        from_clientid => <<"mqttx_66d26a62">>,
1Panel-emqx-rMn5  |                        from_username => undefined,
1Panel-emqx-rMn5  |                        publish_received_at => 1772101281446,
1Panel-emqx-rMn5  |                        <<"correlationData">> => undefined,
1Panel-emqx-rMn5  |                        <<"response_topic">> => undefined}
1Panel-emqx-rMn5  | 	Envs: #{flags => #{},id => <<"00064BB77B62FB0C39EE0001139B0001">>,
1Panel-emqx-rMn5  |                 node => '1Panel-emqx-rMn5@1panel.dev',
1Panel-emqx-rMn5  |                 timestamp => 1772101281446,
1Panel-emqx-rMn5  |                 peername => <<"10.10.10.44:63208">>,
1Panel-emqx-rMn5  |                 metadata =>
1Panel-emqx-rMn5  |                     #{matched => <<"$events/message/acked">>,
1Panel-emqx-rMn5  |                       namespace => global,
1Panel-emqx-rMn5  |                       trigger => <<"$events/message/acked">>,
1Panel-emqx-rMn5  |                       rule_id => <<"rule_yc7t">>},
1Panel-emqx-rMn5  |                 headers => #{puback_props => #{}},
1Panel-emqx-rMn5  |                 event => 'message.acked',payload => <<>>,
1Panel-emqx-rMn5  |                 username => <<"test">>,peerhost => <<"10.10.10.44">>,
1Panel-emqx-rMn5  |                 topic => <<>>,clientid => <<"mqttx_66d26a62">>,qos => 0,
1Panel-emqx-rMn5  |                 puback_props => #{'User-Property' => #{}},
1Panel-emqx-rMn5  |                 pub_props => #{'User-Property' => #{}},
1Panel-emqx-rMn5  |                 from_clientid => <<"mqttx_66d26a62">>,
1Panel-emqx-rMn5  |                 from_username => undefined,
1Panel-emqx-rMn5  |                 publish_received_at => 1772101281446}

感谢提醒,我刚打开试了下,也没有重现,不过我大概知道原因了。应该是个 bug。

https://github.com/emqx/emqx/pull/16836
同事说不能这么修。已经有其他同事在跟进了。更新请留意官网的 changelog