Fix error handling at OCPP message sending
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / UIWebSocketServer.ts
index 03cd184ddc81a106fb5a72c17ec35aabc7290014..f8f836b1073b98b0f861145cefa441ba71192f89 100644 (file)
@@ -99,8 +99,16 @@ export default class UIWebSocketServer extends AbstractUIServer {
         const ws = this.responseHandlers.get(responseId) as WebSocket;
         if (ws?.readyState === WebSocket.OPEN) {
           ws.send(JSON.stringify(response));
+        } else {
+          logger.error(
+            `${this.logPrefix(
+              moduleName,
+              'sendResponse'
+            )} Error at sending response id '${responseId}', WebSocket is not open: ${
+              ws?.readyState
+            }`
+          );
         }
-        this.responseHandlers.delete(responseId);
       } else {
         logger.error(
           `${this.logPrefix(
@@ -117,6 +125,8 @@ export default class UIWebSocketServer extends AbstractUIServer {
         )} Error at sending response id '${responseId}':`,
         error
       );
+    } finally {
+      this.responseHandlers.delete(responseId);
     }
   }