@@ -79,20 +79,24 @@ function authMessageHandler(
7979 reject : ( error : Error ) => void ,
8080 timeoutId : NodeJS . Timeout ,
8181 connection : WebSocket ,
82+ messageHandler : ( event : MessageEvent ) => void ,
8283) {
8384 try {
8485 const parsed = JSON . parse ( event . data . toString ( ) )
86+
87+ // Successful authentication
8588 if ( parsed . result ?. user_id && ! parsed . error ) {
8689 logger . debug ( 'Got logged in response, connection is ready' )
8790 clearTimeout ( timeoutId )
88- connection . removeEventListener ( 'message' , authMessageHandler )
91+ connection . removeEventListener ( 'message' , messageHandler )
8992 resolve ( )
9093 return
9194 }
9295
96+ // Authentication error
9397 if ( parsed . error ) {
9498 clearTimeout ( timeoutId )
95- connection . removeEventListener ( 'message' , authMessageHandler )
99+ connection . removeEventListener ( 'message' , messageHandler )
96100
97101 if ( parsed . error . code === 4001 ) {
98102 // Invalid API key
@@ -107,14 +111,18 @@ function authMessageHandler(
107111 2. Contact Blocksize Capital billing support
108112 3. Verify your payment method is up to date` )
109113 } else {
110- logger . warn ( `Authentication error: ${ parsed . error . message } ` )
114+ logger . warn ( `Authentication error: ${ parsed . error . message } (code: ${ parsed . error . code } ) ` )
111115 }
112116
113117 reject ( new Error ( `Failed to make WS connection: ${ JSON . stringify ( parsed ) } ` ) )
118+ return
114119 }
120+
121+ // If we reach here, the message was not an auth response (could be a different message type)
122+ // We continue waiting for the actual auth response
115123 } catch ( error ) {
116124 clearTimeout ( timeoutId )
117- connection . removeEventListener ( 'message' , authMessageHandler )
125+ connection . removeEventListener ( 'message' , messageHandler )
118126 const errorMessage = error instanceof Error ? error . message : String ( error )
119127 reject ( new Error ( `Failed to parse authentication response: ${ errorMessage } ` ) )
120128 }
@@ -131,7 +139,7 @@ export const blocksizeStateWebsocketOpenHandler = (
131139 } , 10000 )
132140
133141 const messageHandler = ( event : MessageEvent ) => {
134- authMessageHandler ( event , resolve , reject , timeoutId , connection )
142+ authMessageHandler ( event , resolve , reject , timeoutId , connection , messageHandler )
135143 }
136144
137145 connection . addEventListener ( 'message' , messageHandler )
0 commit comments