question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. ItΒ collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Bug]: Timeout attempting to navigate to a page (local file) using FireFox

See original GitHub issue

Bug description

Running the code below on CentOS 7 times out trying to go to the specified page. It never prints β€œwent to URL”. The argument that I am providing as the input URL is for a local file using a fully qualified path (β€œfile:///vmshare/wkhtmltopdf-poc/hello.html”).

If I try the same thing using an Internet URL (e.g. β€œhttps://google.com”) then the code proceeds and does not time out.

'use strict';

// argv[0] = the node binary
// argv[1] = this script
// ... additional args on commandline.
if (process.argv.length < 4 || process.argv.length > 5) {
  console.error(
    'Must supply either 2 or 3 arguments:\n' +
    ' 1. Input URL\n' +
    ' 2. Output file name (pdf)\n' +
    ' 3. Optional page format (e.g. "letter" or "A4")'
  );
  process.exit(1);
}

const inputURL = process.argv[2];
const outputFile = process.argv[3];
const pageFormat = process.argv[4] || 'A4';

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ product: 'firefox' });
  const page = await browser.newPage();
  console.log('got page');

  await page.goto(inputURL);
  console.log('went to URL');
  await page.waitForNetworkIdle();

  await page.evaluate('document.fonts.ready');

  await page.pdf({
    path: outputFile,
    format: pageFormat,
  });

  await browser.close();
})();

When I run it with DEBUG=puppeteer.* …, I get the following output

  puppeteer:fetcher [
  puppeteer:fetcher   {
  puppeteer:fetcher     revision: '105.0a1',
  puppeteer:fetcher     executablePath: '/home/stevejorgensen/work/hub2/commonlib/hub-node-utils/node_modules/puppeteer/.local-firefox/linux-105.0a1/firefox/firefox',
  puppeteer:fetcher     folderPath: '/home/stevejorgensen/work/hub2/commonlib/hub-node-utils/node_modules/puppeteer/.local-firefox/linux-105.0a1',
  puppeteer:fetcher     local: true,
  puppeteer:fetcher     url: 'https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-105.0a1.en-US.linux-x86_64.tar.bz2',
  puppeteer:fetcher     product: 'firefox'
  puppeteer:fetcher   }
  puppeteer:fetcher ] +0ms
  puppeteer:launcher [
  puppeteer:launcher   'Calling /home/stevejorgensen/work/hub2/commonlib/hub-node-utils/node_modules/puppeteer/.local-firefox/linux-105.0a1/firefox/firefox --no-remote --headless about:blank --remote-debugging-port=0 --profile /tmp/puppeteer_dev_firefox_profile-BybfPa'
  puppeteer:launcher ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"method":"Target.setDiscoverTargets","params":{"discover":true},"id":1}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"7e74aa5c-f679-4a57-b411-3f7ae4c6b1df","type":"page","title":"","url":"about:blank","attached":false,"browserContextId":null}}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"0e643a6c-a6f7-49a0-ae36-817ec9a4c8ad","type":"browser","attached":true}}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [ '{"id":1,"result":{}}' ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"method":"Target.createTarget","params":{"url":"about:blank"},"id":2}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"26d81a62-c0eb-47cf-889e-4b60350f20d3","type":"page","title":"","url":"about:blank","attached":false,"browserContextId":null}}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":2,"result":{"targetId":"26d81a62-c0eb-47cf-889e-4b60350f20d3"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"method":"Target.attachToTarget","params":{"targetId":"26d81a62-c0eb-47cf-889e-4b60350f20d3","flatten":true},"id":3}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.attachedToTarget","params":{"targetInfo":{"targetId":"26d81a62-c0eb-47cf-889e-4b60350f20d3","type":"page","title":"","url":"about:blank","attached":false,"browserContextId":null},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","waitingForDebugger":false}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":3,"result":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.enable","id":4}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.getFrameTree","id":5}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Performance.enable","id":6}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Log.enable","id":7}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":4,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":4,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":5,"result":{"frameTree":{"frame":{"id":"12","url":"about:blank","securityOrigin":null,"mimeType":null}}},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":5,\\"result\\":{\\"frameTree\\":{\\"frame\\":{\\"id\\":\\"12\\",\\"url\\":\\"about:blank\\",\\"securityOrigin\\":null,\\"mimeType\\":null}}}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":6,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":6,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":7,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":7,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.setLifecycleEventsEnabled","params":{"enabled":true},"id":8}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Runtime.enable","id":9}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Network.enable","id":10}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":10,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":10,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":8,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":8,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":9,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":9,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"null","name":"","auxData":{"isDefault":true,"frameId":"12","type":"default"}}},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"method\\":\\"Runtime.executionContextCreated\\",\\"params\\":{\\"context\\":{\\"id\\":1,\\"origin\\":\\"null\\",\\"name\\":\\"\\",\\"auxData\\":{\\"isDefault\\":true,\\"frameId\\":\\"12\\",\\"type\\":\\"default\\"}}}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.addScriptToEvaluateOnNewDocument","params":{"source":"//# sourceURL=pptr://__puppeteer_evaluation_script__","worldName":"__puppeteer_utility_world__"},"id":11}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":11,"result":{"identifier":"21200b7f-30b7-4604-b6b1-2fbb22a5e105"},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":11,\\"result\\":{\\"identifier\\":\\"21200b7f-30b7-4604-b6b1-2fbb22a5e105\\"}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.createIsolatedWorld","params":{"frameId":"12","worldName":"__puppeteer_utility_world__","grantUniveralAccess":true},"id":12}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Runtime.executionContextCreated","params":{"context":{"id":2,"origin":"null","name":"__puppeteer_utility_world__","auxData":{"isDefault":false,"frameId":"12","type":"isolated"}}},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"method\\":\\"Runtime.executionContextCreated\\",\\"params\\":{\\"context\\":{\\"id\\":2,\\"origin\\":\\"null\\",\\"name\\":\\"__puppeteer_utility_world__\\",\\"auxData\\":{\\"isDefault\\":false,\\"frameId\\":\\"12\\",\\"type\\":\\"isolated\\"}}}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":12,"result":{"executionContextId":2},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":12,\\"result\\":{\\"executionContextId\\":2}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Emulation.setDeviceMetricsOverride","params":{"mobile":false,"width":800,"height":600,"deviceScaleFactor":1,"screenOrientation":{"angle":0,"type":"portraitPrimary"}},"id":13}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Emulation.setTouchEmulationEnabled","params":{"enabled":false},"id":14}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":14,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":14,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":13,"result":{},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":13,\\"result\\":{}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
got page
  puppeteer:protocol:SEND β–Ί [
  puppeteer:protocol:SEND β–Ί   '{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","method":"Page.navigate","params":{"url":"file:///vmshare/wkhtmltopdf-poc/hello.html","frameId":"12"},"id":15}'
  puppeteer:protocol:SEND β–Ί ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"id":15,"result":{"frameId":"12","loaderId":"0f272b19-ba56-4fbb-8c25-ddebd10fac24"},"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5"}'
  puppeteer:protocol:RECV β—€ ] +0ms
  puppeteer:protocol:RECV β—€ [
  puppeteer:protocol:RECV β—€   '{"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a53ebd61-cd63-445a-95d8-022473ab5af5","message":"{\\"id\\":15,\\"result\\":{\\"frameId\\":\\"12\\",\\"loaderId\\":\\"0f272b19-ba56-4fbb-8c25-ddebd10fac24\\"}}"}}'
  puppeteer:protocol:RECV β—€ ] +0ms
/home/stevejorgensen/work/hub2/commonlib/hub-node-utils/node_modules/puppeteer/lib/cjs/puppeteer/common/LifecycleWatcher.js:163
    return new Errors_js_1.TimeoutError(errorMessage);
           ^

TimeoutError: Navigation timeout of 30000 ms exceeded
    at LifecycleWatcher._LifecycleWatcher_createTimeoutPromise (/home/stevejorgensen/work/hub2/commonlib/hub-node-utils/node_modules/puppeteer/lib/cjs/puppeteer/common/LifecycleWatcher.js:163:12)

Puppeteer version

16.1.1

Node.js version

16.9.1

npm version

8.3.0

What operating system are you seeing the problem on?

Linux

Relevant log output

No response

Issue Analytics

  • State:open
  • Created a year ago
  • Reactions:1
  • Comments:7

github_iconTop GitHub Comments

1reaction
OrKoNcommented, Aug 26, 2022

Let’s keep it open so that it’s easier for users who might encounter this to find it.

0reactions
stevecjcommented, Aug 26, 2022

When I have time, I might try to work around this for myself by serving files from the local filesystem through a Web server dedicated to that purpose on a dedicated port number. I’m just sharing that here as a thought for anyone else who needs to work around this issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

I'm getting "The connection has timed out" when I try to ...
I'm getting "The connection has timed out" when I try to connect to one specific website. I can connect to the site using...
Read more >
How to Fix the ERR_CONNECTION_TIMED_OUT Error - Kinsta
In Mozilla Firefox the error will show as β€œThe connection has timed out.” The server at domain.com is taking too long to respond....
Read more >
11 Ways to Fix the ERR_CONNECTION_TIMED_OUT Error
The message "The webpage not available" ERR_CONNECTION_TIMED_OUT will appear on the screen. This error usually occurs when there is an issueΒ ...
Read more >
Microsoft Edge Browser Policy Documentation
You can use these policies to configure how Microsoft Edge runs in your ... If users try to navigate to an untrusted site...
Read more >
python - Timeout error when downloading .html files from urls
Well, since it doesn't happen to you most of the time, I can infer that your network is probably slow. Try to set...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found