From a29f216d712d91f8d3c881971dafc0f2c9c8fb30 Mon Sep 17 00:00:00 2001 From: vinsmokejazz Date: Mon, 11 May 2026 13:10:27 +0530 Subject: [PATCH] Fix: PDF rendering timeout by using domcontentloaded instead of networkidle - Changed page.goto() wait_until from 'networkidle' to 'domcontentloaded' - Added explicit timeouts: goto (15s), selector (10s), fonts (10s) - Wrapped document.fonts.ready in try/except for graceful failure - Fixes issue: Page.goto timeout when rendering resumes to PDF Fixes #799 --- apps/backend/app/pdf.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/backend/app/pdf.py b/apps/backend/app/pdf.py index 73ef13c11..296a37ff2 100644 --- a/apps/backend/app/pdf.py +++ b/apps/backend/app/pdf.py @@ -133,9 +133,13 @@ async def _render_page_to_pdf( pdf_format: str, pdf_margins: dict, ) -> bytes: - await page.goto(url, wait_until="networkidle") - await page.wait_for_selector(selector) - await page.evaluate("document.fonts.ready") + await page.goto(url, wait_until="domcontentloaded", timeout=15000) + await page.wait_for_selector(selector, timeout=10000) + try: + await page.evaluate("document.fonts.ready", timeout=10000) + except Exception: + # Font loading is not critical for PDF rendering + pass return await page.pdf( format=pdf_format, print_background=True,