From 7ac8715358226ee9359f7a4bc52ab05314848714 Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 19 Jul 2023 14:43:50 +0800 Subject: [PATCH] fix(hstream): handle the `unavailable` error code The "unavailable" error code just means that the HStream is warming up or busy, HStream guarantees that a retry will work well. --- .../src/emqx_bridge_hstreamdb_connector.erl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/emqx_bridge_hstreamdb/src/emqx_bridge_hstreamdb_connector.erl b/apps/emqx_bridge_hstreamdb/src/emqx_bridge_hstreamdb_connector.erl index 1e2ebbfb1..1763b252a 100644 --- a/apps/emqx_bridge_hstreamdb/src/emqx_bridge_hstreamdb_connector.erl +++ b/apps/emqx_bridge_hstreamdb/src/emqx_bridge_hstreamdb_connector.erl @@ -309,6 +309,13 @@ do_append_records(false, Producer, Record) -> msg => "HStreamDB producer sync append success", record => Record }); + %% the HStream is warming up or buzy, something are not ready yet, retry after a while + {error, {unavailable, _} = Reason} -> + {error, + {recoverable_error, #{ + msg => "HStreamDB is warming up or buzy, will retry after a moment", + reason => Reason + }}}; {error, Reason} = Err -> ?tp( hstreamdb_connector_query_return,