diff --git a/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl b/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl index 552e7d6d3..8e84b376b 100644 --- a/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl +++ b/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl @@ -498,13 +498,11 @@ with_link(Name, FoundFn, NotFoundFn) -> case emqx_cluster_link_config:link_raw(Name) of undefined -> NotFoundFn(); - Link0 = #{} -> + Link0 = #{} when is_function(FoundFn, 1) -> Link = fill_defaults_single(Link0), - {arity, Arity} = erlang:fun_info(FoundFn, arity), - case Arity of - 1 -> FoundFn(Link); - 0 -> FoundFn() - end + FoundFn(Link); + _Link = #{} when is_function(FoundFn, 0) -> + FoundFn() end. fill_defaults_single(Link0) ->