diff --git a/nym-gateway-probe/src/lib.rs b/nym-gateway-probe/src/lib.rs index bd3d9465bb..ee0cc13c69 100644 --- a/nym-gateway-probe/src/lib.rs +++ b/nym-gateway-probe/src/lib.rs @@ -161,7 +161,7 @@ impl Socks5Args { None, self.socks5_json_rpc_url_list.clone(), )?; - client.ensure_endpoints_work().await?; + client.ensure_endpoint_works().await?; Ok(()) } diff --git a/nym-gateway-probe/src/socks5_test/json_rpc_client.rs b/nym-gateway-probe/src/socks5_test/json_rpc_client.rs index 471cfa4ebf..267c197ca7 100644 --- a/nym-gateway-probe/src/socks5_test/json_rpc_client.rs +++ b/nym-gateway-probe/src/socks5_test/json_rpc_client.rs @@ -116,12 +116,21 @@ impl JsonRpcClient { } } - pub async fn ensure_endpoints_work(&self) -> anyhow::Result<()> { + pub async fn ensure_endpoint_works(&self) -> anyhow::Result<()> { + let mut any_works = false; for endpoint in self.test_endpoints.iter() { - self.eth_chainid(endpoint).await?; + if let Err(err) = self.eth_chainid(endpoint).await { + warn!("Endpoint {endpoint} error: {err}"); + } else { + any_works = true; + } } - Ok(()) + if any_works { + return Ok(()); + } else { + bail!("None of the endpoints are valid, see logs"); + }; } }