From 10a68610223e5ae5c40be6ea7c3d1c09322bc8e2 Mon Sep 17 00:00:00 2001 From: Darek Urlik Date: Wed, 29 Apr 2026 14:07:37 +0200 Subject: [PATCH] fix: Detect demo-format WS auth ack (success:true) as success --- .../api/client/websocket/impl/WebsocketStreamClientImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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