This release includes 8 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+3 more
ReleasePort's take
Moderate signalPuppeteer‑core v25.0.0 removes several deprecated APIs and raises the minimum supported Node.js version to 22.
Why it matters: Update your runtime to Node ≥ 22 and replace removed Puppeteer APIs (e.g., `Puppeteer.product`, `MouseOptions.clickCount`, `Browser.isConnected()`) before upgrading; failure will break builds.
Summary
AI summaryBreaking changes include removal of deprecated APIs and bumping the minimum Node.js version to 22.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | Medium |
remove deprecated MouseOptions.clickCount remove deprecated MouseOptions.clickCount Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Breaking | Medium |
update min version - Node v20.19 and TypeScript v5.0.1 update min version - Node v20.19 and TypeScript v5.0.1 Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Breaking | Medium |
remove deprecated Browser.isConnected() remove deprecated Browser.isConnected() Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Breaking | Medium |
**puppeteer-core:** Remove Cookie attribute sameParty **puppeteer-core:** Remove Cookie attribute sameParty Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Breaking | Medium |
normalize newline-separated headers to comma-separated format normalize newline-separated headers to comma-separated format Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Breaking | Medium |
remove deprecated Puppeteer.product remove deprecated Puppeteer.product Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Breaking | Medium |
bump min NodeJS to 22 bump min NodeJS to 22 Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Breaking | Medium |
return a Promise for executablePath, defaultArgs return a Promise for executablePath, defaultArgs Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Breaking | Medium |
move packages to ESM only move packages to ESM only Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Dependency | Medium |
@puppeteer/browsers bumped from 2.13.2 to 3.0.0 @puppeteer/browsers bumped from 2.13.2 to 3.0.0 Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Performance | Medium |
**webdriver:** remove intermediate object wrappers **webdriver:** remove intermediate object wrappers Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
block standard network emulation reset if allowlist or blocklist are enabled block standard network emulation reset if allowlist or blocklist are enabled Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Handle missing sessionId when looking up callbacks Handle missing sessionId when looking up callbacks Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
**webdriver:** don't store request on BrowsingContext **webdriver:** don't store request on BrowsingContext Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Refactor | Medium |
don't use debug lib directly don't use debug lib directly Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
25.0.0 (2026-05-12)
⚠ BREAKING CHANGES
- remove deprecated Puppeteer.product (#14977)
- bump min NodeJS to 22 (#14973)
- return a Promise for executablePath, defaultArgs (#14965)
- remove deprecated MouseOptions.clickCount (#13865)
- update min version - Node v20.19 and Typescript v5.0.1 (#14364)
- remove deprecated Browser.isConnected() (#14910)
- move packages to ESM only (#14355)
- puppeteer-core: Remove Cookie attribute sameParty (#14545)
- normalize newline-separated headers to comma-separated format (#14492)
🎉 Features
🛠️ Fixes
- block standard network emulation reset if allowlist or blocklist are enabled (#14976) (4e75b66)
- Handle missing sessionId when looking up callbacks (#14975) (4faa0e6)
- normalize newline-separated headers to comma-separated format (#14492) (1ea5dea)
- puppeteer-core: Remove Cookie attribute sameParty (#14545) (be2d86a)
- webdriver: don't store request on BrowsingContext (#14966) (4e4daec)
📄 Documentation
- bump min NodeJS to 22 (#14973) (4b6ddc3)
- update min version - Node v20.19 and Typescript v5.0.1 (#14364) (96f3780)
⚡ Performance
🏗️ Refactor
- don't use debug lib directly (#14969) (7cbebc6)
- remove deprecated Browser.isConnected() (#14910) (f2cdffc)
- remove deprecated MouseOptions.clickCount (#13865) (1f6bd1f)
- remove deprecated Puppeteer.product (#14977) (2b097b7)
- return a Promise for executablePath, defaultArgs (#14965) (74059fd)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @puppeteer/browsers bumped from 2.13.2 to 3.0.0
- dependencies
Breaking Changes
- Removed deprecated `Puppeteer.product` API
- Removed deprecated `Browser.isConnected()` method
- Removed deprecated `MouseOptions.clickCount` property
- Bumped minimum Node.js version to 22 (also documented as requiring at least Node v20.19 and TypeScript 5.0.1)
- Moved all packages to ESM‑only format
- Removed `Cookie` attribute `sameParty` from puppeteer-core
- Changed `executablePath` and `defaultArgs` to return a Promise instead of synchronous values
- Normalized newline‑separated HTTP headers to comma‑separated format
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About puppeteer
All releases →Related context
Related tools
Earlier breaking changes
- vbrowsers-v3.0.0 Public makeProgressCallback helper function removed.
- vbrowsers-v3.0.0 Switched from extract-zip to OS native tar/unzip.
- vbrowsers-v3.0.0 Proxy agent made optional peer dependency, upgraded to v8.
- vbrowsers-v3.0.0 Minimum Node.js v20.19 and TypeScript v5.0.1 required.
- vbrowsers-v3.0.0 Minimum Node.js version bumped to 22.
Beta — feedback welcome: [email protected]