From 0e0b85b76669237e3368e9ccef5278f47f7812d8 Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Sat, 21 Oct 2023 14:53:41 +0100 Subject: [PATCH] fix: prevent 'undefined' debug message on intentional shard closure (#9846) * style: prevent 'undefined' debug message on intentional shard closure addresses #9594 * refactor(WebSocketManager#destroy): improve debug messaging cleaner stacktrace format gracefully closing shards will display an appropriate debug `reason` * style: unresumable debug messaging --------- Co-authored-by: Almeida --- .../discord.js/src/client/websocket/WebSocketManager.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/discord.js/src/client/websocket/WebSocketManager.js b/packages/discord.js/src/client/websocket/WebSocketManager.js index 3ec0e7004dd5..9b3dff3633ae 100644 --- a/packages/discord.js/src/client/websocket/WebSocketManager.js +++ b/packages/discord.js/src/client/websocket/WebSocketManager.js @@ -258,7 +258,7 @@ class WebSocketManager extends EventEmitter { * @param {number} id The shard id that disconnected */ this.client.emit(Events.ShardDisconnect, { code, reason: reasonIsDeprecated, wasClean: true }, shardId); - this.debug(GatewayCloseCodes[code], shardId); + this.debug(`Shard not resumable: ${code} (${GatewayCloseCodes[code] ?? CloseCodes[code]})`, shardId); return; } @@ -324,9 +324,9 @@ class WebSocketManager extends EventEmitter { async destroy() { if (this.destroyed) return; // TODO: Make a util for getting a stack - this.debug(`Manager was destroyed. Called by:\n${new Error().stack}`); + this.debug(Object.assign(new Error(), { name: 'Manager was destroyed:' }).stack); this.destroyed = true; - await this._ws?.destroy({ code: CloseCodes.Normal }); + await this._ws?.destroy({ code: CloseCodes.Normal, reason: 'Manager was destroyed' }); } /**