From 3e1b5ada69000ee38175777c54d66c6a9eb466cb Mon Sep 17 00:00:00 2001 From: Jkorf Date: Thu, 21 Aug 2025 13:39:07 +0200 Subject: [PATCH] Added check in websocket for receiving 401 unauthorized http response status when 101 was expected --- CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs index f71004f..817c90e 100644 --- a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs +++ b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs @@ -1,6 +1,7 @@ using CryptoExchange.Net.Interfaces; using CryptoExchange.Net.Logging.Extensions; using CryptoExchange.Net.Objects; +using CryptoExchange.Net.Objects.Errors; using CryptoExchange.Net.Objects.Sockets; using CryptoExchange.Net.RateLimiting; using Microsoft.Extensions.Logging; @@ -252,6 +253,11 @@ namespace CryptoExchange.Net.Sockets await (OnConnectRateLimited?.Invoke() ?? Task.CompletedTask).ConfigureAwait(false); return new CallResult(new ServerRateLimitError(we.Message, we)); } + + if (_socket.HttpStatusCode == HttpStatusCode.Unauthorized) + { + return new CallResult(new ServerError(new ErrorInfo(ErrorType.Unauthorized, "Server returned status code `401` when `101` was expected"))); + } #else // ClientWebSocket.HttpStatusCode is only available in .NET6+ https://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocket.httpstatuscode?view=net-8.0 // Try to read 429 from the message instead