[Bug]: js coverage resets on navigation when resetOnNavigation false is specified
Author: bavocoCreated May 18, 2026Updated May 18, 2026
LabelsconfirmedP3
Minimal, reproducible example
import { createServer } from "node:http";
import puppeteer from "puppeteer-core";
const port = 3000;
const server = createServer((req, res) => {
if (req.url === "/jscoverage/multiple.html") {
res.writeHead(200, { "Content-Type": "text/html" });
res.end(`<!DOCTYPE html>
<script src='script1.js'></script>
<script src='script2.js'></script>`);
return;
}
if (req.url === "/jscoverage/script1.js") {
res.writeHead(200, { "Content-Type": "application/javascript" });
res.end(`console.log("script1");`);
return;
}
if (req.url === "/jscoverage/script2.js") {
res.writeHead(200, { "Content-Type": "application/javascript" });
res.end(`console.log("script2");`);
return;
}
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Empty page");
});
server.listen(port);
const browser = await puppeteer.launch({
channel: "chrome",
});
const page = await browser.newPage();
await page.coverage.startJSCoverage({ resetOnNavigation: false });
await page.goto(`http://localhost:${port}/jscoverage/multiple.html`);
await page.goto(`http://localhost:${port}`); // when commented out, we get the expected output
const coverage = await page.coverage.stopJSCoverage();
console.log(coverage.length); // expected output: 2, actual output: 0
await browser.close();
server.close();
Background
I've noticed this recently, it broke somewhere during the 24.x releases. But might not be related to puppeteer, since I'm unable to get it working again even by downgrading to 24.10.
Expectation
Expected output: 2
Reality
Actual output: 0, unless navigating to the empty page is commented out, then we get the expected output
Puppeteer configuration file (if used)
Puppeteer version
25.0.3
Node version
26.0.0
Package manager
npm
Package manager version
11.14.0
Operating system
Windows
Source: puppeteer/puppeteer