diff --git a/apps/emqx_bridge/src/emqx_bridge_api.erl b/apps/emqx_bridge/src/emqx_bridge_api.erl index a71315a27..7056e6059 100644 --- a/apps/emqx_bridge/src/emqx_bridge_api.erl +++ b/apps/emqx_bridge/src/emqx_bridge_api.erl @@ -546,7 +546,12 @@ schema("/bridges_probe") -> ?NO_CONTENT; {error, #{kind := validation_error} = Reason} -> ?BAD_REQUEST('TEST_FAILED', map_to_json(Reason)); - {error, Reason} when not is_tuple(Reason); element(1, Reason) =/= 'exit' -> + {error, Reason0} when not is_tuple(Reason0); element(1, Reason0) =/= 'exit' -> + Reason = + case Reason0 of + {unhealthy_target, Message} -> Message; + _ -> Reason0 + end, ?BAD_REQUEST('TEST_FAILED', Reason) end; BadRequest -> diff --git a/apps/emqx_bridge_gcp_pubsub/test/emqx_bridge_gcp_pubsub_consumer_SUITE.erl b/apps/emqx_bridge_gcp_pubsub/test/emqx_bridge_gcp_pubsub_consumer_SUITE.erl index 4828e1730..e2ea48e1c 100644 --- a/apps/emqx_bridge_gcp_pubsub/test/emqx_bridge_gcp_pubsub_consumer_SUITE.erl +++ b/apps/emqx_bridge_gcp_pubsub/test/emqx_bridge_gcp_pubsub_consumer_SUITE.erl @@ -1211,7 +1211,7 @@ t_nonexistent_topic(Config) -> emqx_resource_manager:health_check(ResourceId) ), ?assertMatch( - {ok, _Group, #{error := "GCP PubSub topics are invalid" ++ _}}, + {ok, _Group, #{error := {unhealthy_target, "GCP PubSub topics are invalid" ++ _}}}, emqx_resource_manager:lookup_cached(ResourceId) ), %% now create the topic and restart the bridge diff --git a/apps/emqx_resource/src/emqx_resource_manager.erl b/apps/emqx_resource/src/emqx_resource_manager.erl index 195e9b3a7..2e4822a2f 100644 --- a/apps/emqx_resource/src/emqx_resource_manager.erl +++ b/apps/emqx_resource/src/emqx_resource_manager.erl @@ -642,7 +642,6 @@ status_to_error(_) -> {error, undefined}. %% Compatibility -external_error({error, {unhealthy_target, Message}}) -> Message; external_error({error, Reason}) -> Reason; external_error(Other) -> Other.