diff --git a/diagnostic/server.js b/diagnostic/server.js index 7719b75..b51d2cd 100644 --- a/diagnostic/server.js +++ b/diagnostic/server.js @@ -1506,7 +1506,12 @@ const server = http.createServer((req, res) => { log("error", "server", `zip exit ${code}: ${stderr.slice(0, 200)}`); } }); - req.on("close", () => { if (!zip.killed) zip.kill("SIGTERM"); }); + // SIGTERM an zip nur wenn der Client wirklich disconnected + // (res.close vor res.end). req.on("close") feuert auch wenn + // der Request-Body durch ist — das wuerde zip vorzeitig killen. + res.on("close", () => { + if (!res.writableEnded && !zip.killed) zip.kill("SIGTERM"); + }); }); return; } else if (req.url === "/api/files-delete-batch" && req.method === "POST") {