title: Why is puppeteer reporting "UnhandledPromiseRejectionWarning: Error: Navigation failed because browser has disconnected!"?
body: <p>I've got a simple node.js script to capture screenshots of a few web pages. It appears I'm getting tripped up somewhere along the line with my use of async/await, but I can't figure out where. I'm currently using puppeteer v1.11.0.</p>
  
  <pre><code>const puppeteer = require('puppeteer');
  
  //a list of sites to screenshot
  const papers =
  {
       nytimes: "https://www.nytimes.com/",
       wapo: "https://www.washingtonpost.com/"
  };
  
  //launch puppeteer, do everything in .then() handler
  puppeteer.launch({devtools:false}).then(function(browser){
  
  //create a load_page function that returns a promise which resolves when screenshot is taken
  async function load_page(paper){
  
      const url = papers[paper];
  
      return new Promise(async function(resolve, reject){
  
          const page = await browser.newPage();
          await page.setViewport({width:1024, height: 768});
  
          //screenshot on first console message
          page.once("console", async console_msg =&gt; {        
              await page.pdf({path: paper + '.pdf',
                              printBackground:true,
                              width:'1024px',
                              height:'768px',
                              margin: {top:"0px", right:"0px", bottom:"0px", left:"0px"}
                          });
  
              //close page
              await page.close();
  
              //resolve promise
              resolve();
          });
  
          //go to page
          await page.goto(url, {"waitUntil":["load", "networkidle0"]});
  
      })     
  }
  
  //step through the list of papers, calling the above load_page()
  async function stepThru(){
      for(var p in papers){
          if(papers.hasOwnProperty(p)){
              //wait to load page and screenshot before loading next page
              await load_page(p);
          }
      }
  
      //close browser after loop has finished (and all promises resolved)
      await browser.close();  
  }
  
  //kick it off
  stepThru();
  
  //getting this error message:
  //UnhandledPromiseRejectionWarning: Error: Navigation failed because browser has disconnected!
  
  });
  </code></pre>