diff --git a/streaming-agent/signaling-server.js b/streaming-agent/signaling-server.js index 7b4b26c..db18ed0 100644 --- a/streaming-agent/signaling-server.js +++ b/streaming-agent/signaling-server.js @@ -247,6 +247,12 @@ function startPacat(browserSessId) { console.log(`[pacat:${browserSessId}] exited with code ${code}`); pacatProcesses.delete(browserSessId); }); + // Prevent EPIPE from crashing the server when pacat exits while we're + // still writing to its stdin (e.g. mic frames arriving after disconnect). + pacat.stdin.on('error', err => { + if (err.code !== 'EPIPE') console.error(`[pacat:${browserSessId}] stdin error: ${err.message}`); + pacatProcesses.delete(browserSessId); + }); pacatProcesses.set(browserSessId, pacat); return pacat; }