From 9721aae9ab47c54d80f781ec5b94e6b1baa1bbf6 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Fri, 13 Mar 2026 19:10:27 -0700 Subject: [PATCH] Kill and restart workers when IPC send fails Co-Authored-By: Claude Sonnet 4.6 --- src/server/MasterLobbyService.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/MasterLobbyService.ts b/src/server/MasterLobbyService.ts index 4d9914b1d..dee30ad04 100644 --- a/src/server/MasterLobbyService.ts +++ b/src/server/MasterLobbyService.ts @@ -117,10 +117,14 @@ export class MasterLobbyService { games: this.getAllLobbies(), }, } satisfies MasterLobbiesBroadcast; - for (const worker of this.workers.values()) { + for (const [workerId, worker] of this.workers.entries()) { worker.send(msg, (e) => { if (e) { - this.log.error("Failed to send lobbies broadcast to worker:", e); + this.log.error( + `Failed to send lobbies broadcast to worker ${workerId}, killing worker:`, + e, + ); + worker.kill(); } }); } @@ -162,7 +166,11 @@ export class MasterLobbyService { } worker.send(msg, (e) => { if (e) { - this.log.error("Failed to send message to worker:", e); + this.log.error( + `Failed to send message to worker ${workerId}, killing worker:`, + e, + ); + worker.kill(); } }); }