diff --git a/apps/emqx_bridge_dynamo/src/emqx_bridge_dynamo_connector.erl b/apps/emqx_bridge_dynamo/src/emqx_bridge_dynamo_connector.erl index 6e2caf1ab..1d29bd427 100644 --- a/apps/emqx_bridge_dynamo/src/emqx_bridge_dynamo_connector.erl +++ b/apps/emqx_bridge_dynamo/src/emqx_bridge_dynamo_connector.erl @@ -198,20 +198,12 @@ on_get_status(_InstanceId, #{pool_name := Pool} = State) -> end. status_result(Results, State) -> - case lists:all(fun(Res) -> Res =:= true end, Results) of - true -> + case lists:filter(fun(Res) -> Res =/= true end, Results) of + [] when Results =:= [] -> + ?status_connecting; + [] -> ?status_connected; - false -> - {value, {false, Error}} = - lists:search( - fun - ({false, _Error}) -> - true; - (_) -> - false - end, - Results - ), + [{false, Error} | _] -> {?status_connecting, State, Error} end.