(Created on )

Puppeteer: Tab target session is not defined.

The CDP page constructor has no parent tab target session.


The CDP page constructor has no parent tab target session.

Error message

Tab target session is not defined.

How this error happens

Page initialization could not find the parent tab target’s session. 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.

All Puppeteer errors

Keep Reading

Puppeteer Guides

All Guides →