Puppeteer: sessionFactory is not initialized
A target has no initialized CDP session factory.
A target has no initialized CDP session factory.
Error message
sessionFactory is not initialized
How this error happens
A target was used before its CDP session factory was set. This is an internal initialization or registry check, not an application input validator.
Use a running Chrome/CDP browser named browser. The following is a lifecycle race to rule out.
const page = await browser.newPage();
await Promise.all([
page.createCDPSession(),
page.close(),
]);
Creation and shutdown overlap in this example. Depending on event order, Puppeteer may report a target/session-closed error instead. It is not a deterministic reproduction of this particular registry message.
How to fix
Keep the browser and context alive until creation and page work finish. Run the corrected sequence with a fresh live browser.
const page = await browser.newPage();
const session = await page.createCDPSession();
try {
await session.send(
"Runtime.enable"
);
} finally {
await session.detach();
await page.close();
}
Things to keep in mind
If this exact initialization error persists with sequential public API calls, retain the full stack and a minimal reproduction and report the browser/Puppeteer failure. Do not manufacture target IDs, initialize private maps, or retry an external side effect blindly.