diff --git a/src/emqx_session.erl b/src/emqx_session.erl index 12718b9fc..30b35bf11 100644 --- a/src/emqx_session.erl +++ b/src/emqx_session.erl @@ -963,8 +963,9 @@ ensure_expire_timer(State) -> ensure_will_delay_timer(State = #state{will_msg = #message{headers = #{'Will-Delay-Interval' := WillDelayInterval}}}) -> State#state{will_delay_timer = emqx_misc:start_timer(WillDelayInterval * 1000, will_delay)}; -ensure_will_delay_timer(State) -> - State. +ensure_will_delay_timer(State = #state{will_msg = WillMsg}) -> + send_willmsg(WillMsg), + State#state{will_msg = undefined}. ensure_stats_timer(State = #state{enable_stats = true, stats_timer = undefined, idle_timeout = IdleTimeout}) ->