diff --git a/unfurler/src/concurrency/ReusablePage.ts b/unfurler/src/concurrency/ReusablePage.ts index ae9c3d6f0..4b272afb0 100644 --- a/unfurler/src/concurrency/ReusablePage.ts +++ b/unfurler/src/concurrency/ReusablePage.ts @@ -101,11 +101,16 @@ export default class ReusablePage extends ConcurrencyImplementation { page.repairRequested = true; }); if (config.MEMPOOL.NETWORK !== 'bisq') { - await page.goto(defaultUrl, { waitUntil: "load" }); - await Promise.race([ - page.waitForSelector('meta[property="og:preview:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => true), - page.waitForSelector('meta[property="og:preview:fail"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => false) - ]) + try { + await page.goto(defaultUrl, { waitUntil: "load" }); + await Promise.race([ + page.waitForSelector('meta[property="og:preview:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => true), + page.waitForSelector('meta[property="og:preview:fail"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => false) + ]) + } catch (e) { + logger.err(`failed to load frontend during page initialization: ` + (e instanceof Error ? e.message : `${e}`)); + page.repairRequested = true; + } } page.free = true; return page diff --git a/unfurler/src/index.ts b/unfurler/src/index.ts index 4624b1584..60126863d 100644 --- a/unfurler/src/index.ts +++ b/unfurler/src/index.ts @@ -119,7 +119,7 @@ class Server { page.repairRequested = true; } } catch (e) { - logger.err(`failed to render page for ${action}` + (e instanceof Error ? e.message : `${e}`)); + logger.err(`failed to render page for ${action}: ` + (e instanceof Error ? e.message : `${e}`)); page.repairRequested = true; } }