From 464e5285a1fd7cf44185d2298dce294b22170863 Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Tue, 10 Mar 2026 09:56:33 +0100 Subject: [PATCH] fix: enhance PDF generation error handling and timeout settings in puppeteer service --- .../src/server/services/puppeteer.service.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/infoalloggi/src/server/services/puppeteer.service.ts b/apps/infoalloggi/src/server/services/puppeteer.service.ts index 27a2f09..cfe5e4e 100644 --- a/apps/infoalloggi/src/server/services/puppeteer.service.ts +++ b/apps/infoalloggi/src/server/services/puppeteer.service.ts @@ -196,7 +196,13 @@ const puppeteerGenPdf = async ({ : `http://host.docker.internal:3000`; const targetUrl = `${baseUrl}${url}`; - await page.goto(targetUrl, { waitUntil: "networkidle0" }); + try { + await page.goto(targetUrl, { waitUntil: "networkidle2", timeout: 60000 }); + } catch (e) { + if ((e as Error).message.includes("detached")) { + await page.goto(targetUrl, { waitUntil: "load", timeout: 60000 }); + } else throw e; + } const pdf = await page.pdf({ format: "A4", @@ -206,7 +212,7 @@ const puppeteerGenPdf = async ({ } catch (error) { throw new TRPCError({ code: "INTERNAL_SERVER_ERROR", - message: `Errore nella generazione del PDF: ${(error as Error).message}`, + message: `Errore nella generazione del PDF, URL: ${url}, ${(error as Error).message}`, }); } finally { // 'disconnect' tells browserless you're done with this tab