diff --git a/src/messages/messages.gateway.ts b/src/messages/messages.gateway.ts index ac4b85d..9d65096 100644 --- a/src/messages/messages.gateway.ts +++ b/src/messages/messages.gateway.ts @@ -112,10 +112,15 @@ export class MessagesGateway implements OnGatewayConnection, OnGatewayDisconnect this.logger.log(`Client connected successfully: ${client.id} (User: ${userId}, Role: ${payload.role})`); - // Auto-join admin users to admin_room for support chat notifications - if (payload.role === 'ADMIN' || payload.role === 'SUPER_ADMIN') { - client.join('admin_room'); - this.logger.log(`Admin ${userId} joined admin_room`); + // Everything below is best-effort — don't let DB errors kill the socket connection + try { + // Auto-join admin users to admin_room for support chat notifications + if (payload.role === 'ADMIN' || payload.role === 'SUPER_ADMIN') { + client.join('admin_room'); + this.logger.log(`Admin ${userId} joined admin_room`); + } + } catch (err) { + this.logger.warn(`Failed to join admin room for ${userId}: ${err.message}`); } // Update user online status in background (don't await) @@ -132,7 +137,6 @@ export class MessagesGateway implements OnGatewayConnection, OnGatewayDisconnect this.messagesService.markPendingMessagesAsDelivered(userId) .then((results) => { for (const result of results) { - // Notify each sender that their messages were delivered const deliveredEvent = { messageIds: result.messageIds, conversationId: result.conversationId,