diff --git a/apps/emqx_modules/src/emqx_modules_conf.erl b/apps/emqx_modules/src/emqx_modules_conf.erl index e5604280d..ebe9b83df 100644 --- a/apps/emqx_modules/src/emqx_modules_conf.erl +++ b/apps/emqx_modules/src/emqx_modules_conf.erl @@ -168,10 +168,11 @@ post_config_update(_, _UpdateReq, NewConfig, OldConfig, _AppEnvs) -> } = emqx_utils:diff_lists(NewConfig, OldConfig, fun(#{topic := T}) -> T end), Deregistered = [emqx_topic_metrics:deregister(T) || #{topic := T} <- Removed], Registered = [emqx_topic_metrics:register(T) || #{topic := T} <- Added], - Errs = [Res || Res <- Registered ++ Deregistered, Res =/= ok], - case Errs of + DeregisteredErrs = [Res || Res <- Deregistered, Res =/= ok, Res =/= {error, topic_not_found}], + RegisteredErrs = [Res || Res <- Registered, Res =/= ok, Res =/= {error, already_existed}], + case DeregisteredErrs ++ RegisteredErrs of [] -> ok; - _ -> {error, Errs} + Errs -> {error, Errs} end. %%--------------------------------------------------------------------