add WebSocket error handling