diff --git a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java index c8d60c1ea..f814a787a 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java @@ -590,9 +590,17 @@ public class GeyserSession implements CommandSender { disconnect(LanguageUtils.getPlayerLocaleString("geyser.auth.login.invalid.kick", getClientData().getLanguageCode())); } catch (RequestException ex) { ex.printStackTrace(); + disconnect(ex.getMessage()); } return null; - }).whenComplete((aVoid, ex) -> connectDownstream()); + }).whenComplete((aVoid, ex) -> { + if (this.closed) { + // Client disconnected during the authentication attempt + return; + } + + connectDownstream(); + }); } /**