From 168f9f028636b12be196baf59bb3c04864498307 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 31 Mar 2026 16:52:53 +0000 Subject: [PATCH] Fix EINTR crash from pino ThreadStream during FFmpeg playback The pino logger's ThreadStream was throwing unhandled EINTR errors when FFmpeg child processes were spawned, crashing the entire bot. Add an error handler to suppress EINTR and prevent process crashes. https://claude.ai/code/session_01EjpEsC2GCsvwbu4n3XC8EE --- src/logger.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/logger.ts b/src/logger.ts index 5eebfc4..0cab66e 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -26,5 +26,11 @@ export function createLogger(logDir?: string): Logger { ], }); + // Prevent EINTR errors from crashing the process (known pino/thread-stream issue on Linux) + transport.on("error", (err: Error) => { + if ((err as NodeJS.ErrnoException).code === "EINTR") return; + console.error("Logger transport error:", err); + }); + return pino({ level: "debug" }, transport); }