diff --git a/core/kordophone/src/api/http_client.rs b/core/kordophone/src/api/http_client.rs index 537d495..842a4ec 100644 --- a/core/kordophone/src/api/http_client.rs +++ b/core/kordophone/src/api/http_client.rs @@ -426,6 +426,7 @@ impl APIInterface for HTTPAPIClient { log::debug!("Websocket request: {:?}", request); + let mut should_retry = true; // retry once after authenticating. match connect_async(request).await.map_err(Error::from) { Ok((socket, response)) => { log::debug!("Websocket connected: {:?}", response.status()); @@ -440,8 +441,12 @@ impl APIInterface for HTTPAPIClient { let new_token = self.authenticate(credentials.clone()).await?; self.auth_store.set_token(new_token.to_string()).await; - // try again on the next attempt. - continue; + if should_retry { + // try again on the next attempt. + continue; + } else { + break Err(e); + } } else { log::error!("Websocket unauthorized, no credentials provided"); break Err(Error::ClientError(