From 2bad70fda91abf4ea5e9ce10b99e04a09462376a Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 25 Oct 2022 16:59:48 +0800 Subject: [PATCH] Catch puppeteer navigation timeout error --- packages/puppeteer-parse/index.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/puppeteer-parse/index.js b/packages/puppeteer-parse/index.js index d3fadf998..b602ff1ef 100644 --- a/packages/puppeteer-parse/index.js +++ b/packages/puppeteer-parse/index.js @@ -304,19 +304,19 @@ exports.puppeteer = Sentry.GCPFunction.wrapHttpFunction(async (req, res) => { console.log('error with handler: ', e); } - var context, page, finalUrl; - if ((!content || !title) && contentType !== 'application/pdf') { - const result = await retrievePage(url) - if (result && result.context) { context = result.context } - if (result && result.page) { page = result.page } - if (result && result.finalUrl) { finalUrl = result.finalUrl } - if (result && result.contentType) { contentType = result.contentType } - console.log('context, page, finalUrl, contentType', context, page, finalUrl, contentType); - } else { - finalUrl = url - } - + let context, page, finalUrl; try { + if ((!content || !title) && contentType !== 'application/pdf') { + const result = await retrievePage(url) + if (result && result.context) { context = result.context } + if (result && result.page) { page = result.page } + if (result && result.finalUrl) { finalUrl = result.finalUrl } + if (result && result.contentType) { contentType = result.contentType } + console.log('context, page, finalUrl, contentType', context, page, finalUrl, contentType); + } else { + finalUrl = url + } + if (contentType === 'application/pdf') { const uploadedFileId = await uploadPdf(finalUrl, userId, articleSavingRequestId); const l = await saveUploadedPdf(userId, finalUrl, uploadedFileId, articleSavingRequestId); @@ -641,7 +641,7 @@ async function retrievePage(url) { }); try { - const response = await page.goto(url, { waitUntil: ['networkidle2'] }); + const response = await page.goto(url, { timeout: 8 * 1000, waitUntil: ['networkidle2'] }); const finalUrl = response.url(); const contentType = response.headers()['content-type'];