diff --git a/src/main/java/com/bybit/api/client/websocket/impl/WebsocketStreamClientImpl.java b/src/main/java/com/bybit/api/client/websocket/impl/WebsocketStreamClientImpl.java index 644b0a3..53d3531 100644 --- a/src/main/java/com/bybit/api/client/websocket/impl/WebsocketStreamClientImpl.java +++ b/src/main/java/com/bybit/api/client/websocket/impl/WebsocketStreamClientImpl.java @@ -264,7 +264,10 @@ private void flushMessageQueue() { public void onMessage(String msg) throws JsonProcessingException { if (requiresAuthentication(path) && msg.contains("\"op\":\"auth\"")) { // Check if authentication was successful - isAuthenticated = msg.contains("\"retCode\":0"); + // Bybit demo trading WS responds with {"success":true,...} (no retCode); + // upstream issue #63 — accept either signal as auth success. + isAuthenticated = msg.contains("\"retCode\":0") + || (msg.contains("\"success\":true") && msg.contains("\"op\":\"auth\"")); if (isAuthenticated) { LOGGER.info("Authentication successful."); flushMessageQueue(); // Send queued messages after successful authentication