Repository navigation
fix(mcp): do not crash when download fails after browser close - #42922
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Test results for "MCP"3 failed 8748 passed, 1480 skipped Merge workflow run. |
|
Hi, I'm the Playwright bot and I took a first look at the CI failures here. 🟡 Nothing points at this PR, but two failures aren't proven flakesThe PR only changes the DetailsThe failures come from the MCP merge report, which matches test run 36074277043 (sha Pre-existing flake / infra
Uncertain
Triaged by the Playwright bot - agent run |
48844a5
into
microsoft:main
## ✨ Highlights - **🔎 Save `browser_find` results to a file** — new `filename` parameter writes matches to a file instead of the response ([microsoft/playwright#42077](microsoft/playwright#42077)). ([microsoft/playwright#42968](microsoft/playwright#42968)) ## 🐛 Fixes - `browser_navigate` and `browser_reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](microsoft/playwright#42817)). ([microsoft/playwright#42908](microsoft/playwright#42908)) - The server no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](microsoft/playwright#42831)). ([microsoft/playwright#42922](microsoft/playwright#42922)) - `browser_wait_for` reports when `time` is capped at 30 seconds ([#1767](#1767)). ([microsoft/playwright#42932](microsoft/playwright#42932)) - WebMCP tools no longer stay bound to a stale tab or frame ([microsoft/playwright#42816](microsoft/playwright#42816)). ([microsoft/playwright#42821](microsoft/playwright#42821)) - WebMCP tool calls work with Chromium 155+. ([microsoft/playwright#42915](microsoft/playwright#42915)) - Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](microsoft/playwright#42807)). ([microsoft/playwright#42811](microsoft/playwright#42811)) - The Docker image reaps orphaned browser processes ([#1769](#1769)). ([#1771](#1771))
## Fixes - `run-code` scripts can use timers, `fetch`, `URL`, `Buffer`, `crypto`, `AbortController` and `TextEncoder`/`TextDecoder`; `require` and `process` stay unavailable ([#471](#471)). ([microsoft/playwright#42975](microsoft/playwright#42975)) - `find --filename=results.md` saves matches to a file when a query produces too many of them ([microsoft/playwright#42077](microsoft/playwright#42077)). ([microsoft/playwright#42968](microsoft/playwright#42968)) - `goto` and `reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](microsoft/playwright#42817)). ([microsoft/playwright#42908](microsoft/playwright#42908)) - The session no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](microsoft/playwright#42831)). ([microsoft/playwright#42922](microsoft/playwright#42922)) - `install-browser --no-shell` is accepted instead of failing with `Unknown option: --shell` ([microsoft/playwright#42804](microsoft/playwright#42804)). ([microsoft/playwright#42871](microsoft/playwright#42871)) - `webmcp-call` no longer runs a tool in a stale tab or frame ([microsoft/playwright#42816](microsoft/playwright#42816)). ([microsoft/playwright#42821](microsoft/playwright#42821)) - `webmcp-call` works with Chromium 155+. ([microsoft/playwright#42915](microsoft/playwright#42915)) - Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](microsoft/playwright#42807)). ([microsoft/playwright#42811](microsoft/playwright#42811)) - The bundled skill only preapproves Playwright commands instead of any `npm` and `npx` command ([microsoft/playwright#42745](microsoft/playwright#42745)). ([microsoft/playwright#42789](microsoft/playwright#42789))
This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [aqua:astral-sh/uv](https://redirect.github.com/astral-sh/uv) | tools | patch | `0.12.19` → `0.12.20` |  |  | | [npm:@playwright/mcp](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright-mcp)) | tools | patch | `0.0.82` → `0.0.83` |  |  | --- ### Release Notes <details> <summary>astral-sh/uv (aqua:astral-sh/uv)</summary> ### [`v0.12.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01220) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.12.19...0.12.20) Released on 2026-09-28. ##### Enhancements - Reuse lockfiles when dependency declarations are semantically equivalent ([#​21951](https://redirect.github.com/astral-sh/uv/pull/21951)) - Preserve second-line encoding declarations when installing wheel scripts with CRLF shebangs ([#​21990](https://redirect.github.com/astral-sh/uv/pull/21990)) ##### Preview features - Write normalized requirement declarations with the `lockfile-normalization` preview feature ([#​21951](https://redirect.github.com/astral-sh/uv/pull/21951)) - Honor synthetic default groups when installing or syncing from `pylock.toml` ([#​22003](https://redirect.github.com/astral-sh/uv/pull/22003)) - Resolve local paths in exported `pylock.toml` files relative to the output file ([#​22042](https://redirect.github.com/astral-sh/uv/pull/22042)) - Install each package only once when repeated `tool-install-locks` requirements resolve to the same package ([#​22000](https://redirect.github.com/astral-sh/uv/pull/22000)) - Reuse `lock-without-metadata` lockfiles for conflicting groups with distinct base and extra requirement specifiers ([#​22055](https://redirect.github.com/astral-sh/uv/pull/22055)) - Use consistent root-package paths in `uv workspace metadata` and `uv tree --format json` output ([#​22050](https://redirect.github.com/astral-sh/uv/pull/22050)) ##### Configuration - Continue searching `XDG_CONFIG_DIRS` after empty entries ([#​21987](https://redirect.github.com/astral-sh/uv/pull/21987)) ##### Performance - Restore the previous HTTP cache-write scheduling while investigating severe cache-revalidation stalls on ext4 filesystems ([#​22051](https://redirect.github.com/astral-sh/uv/pull/22051)) ##### Bug fixes - Apply hash constraints to every repeated requirement under `--require-hashes` and `--verify-hashes` ([#​21996](https://redirect.github.com/astral-sh/uv/pull/21996)) - Allow metadata builds for first-party workspace projects under `--no-build` ([#​21988](https://redirect.github.com/astral-sh/uv/pull/21988)) - Honor project exclusion flags with `--all-packages`, including `--no-install-project` and `--no-emit-project` ([#​21994](https://redirect.github.com/astral-sh/uv/pull/21994)) - Restore `pyproject.toml` if `uv upgrade` fails or is interrupted ([#​21983](https://redirect.github.com/astral-sh/uv/pull/21983)) - Generate working Nushell activation scripts for relocatable virtual environments ([#​21979](https://redirect.github.com/astral-sh/uv/pull/21979)) - Prevent commands from running and changing state after displaying `--show-settings` ([#​21989](https://redirect.github.com/astral-sh/uv/pull/21989)) - Treat UTF-16 requirements files containing only a byte-order mark as empty ([#​21991](https://redirect.github.com/astral-sh/uv/pull/21991)) - Ignore unrecognized managed-Python implementation directories during `uv python list` and `uv python upgrade` instead of panicking ([#​22033](https://redirect.github.com/astral-sh/uv/pull/22033)) - Avoid panics and incorrect rewriting when managed Python sysconfig paths merely start with `/install` ([#​22036](https://redirect.github.com/astral-sh/uv/pull/22036)) - Report whitespace-only non-ASCII requirements as invalid instead of panicking ([#​22035](https://redirect.github.com/astral-sh/uv/pull/22035)) - Avoid a resolver panic when trace logging an always-false constraint ([#​22034](https://redirect.github.com/astral-sh/uv/pull/22034)) </details> <details> <summary>microsoft/playwright-mcp (npm:@​playwright/mcp)</summary> ### [`v0.0.83`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.83) [Compare Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.82...v0.0.83) #### Bug Fixes - `browser_find` takes `filename` to save matches to a file instead of the response ([microsoft/playwright#42077](https://redirect.github.com/microsoft/playwright/issues/42077)). ([microsoft/playwright#42968](https://redirect.github.com/microsoft/playwright/pull/42968)) - `browser_navigate` and `browser_reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](https://redirect.github.com/microsoft/playwright/issues/42817)). ([microsoft/playwright#42908](https://redirect.github.com/microsoft/playwright/pull/42908)) - The server no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](https://redirect.github.com/microsoft/playwright/issues/42831)). ([microsoft/playwright#42922](https://redirect.github.com/microsoft/playwright/pull/42922)) - `browser_wait_for` reports when `time` is capped at 30 seconds ([#​1767](https://redirect.github.com/microsoft/playwright-mcp/issues/1767)). ([microsoft/playwright#42932](https://redirect.github.com/microsoft/playwright/pull/42932)) - WebMCP tools no longer stay bound to a stale tab or frame ([microsoft/playwright#42816](https://redirect.github.com/microsoft/playwright/issues/42816)). ([microsoft/playwright#42821](https://redirect.github.com/microsoft/playwright/pull/42821)) - WebMCP tool calls work with Chromium 155+. ([microsoft/playwright#42915](https://redirect.github.com/microsoft/playwright/pull/42915)) - Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](https://redirect.github.com/microsoft/playwright/issues/42807)). ([microsoft/playwright#42811](https://redirect.github.com/microsoft/playwright/pull/42811)) - The Docker image reaps orphaned browser processes ([#​1769](https://redirect.github.com/microsoft/playwright-mcp/issues/1769)). ([#​1771](https://redirect.github.com/microsoft/playwright-mcp/pull/1771)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/soodoh/dotfiles). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [@playwright/mcp](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright-mcp)) | `0.0.82` → `0.0.83` |  |  |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the warning logs for more information. --- ### Release Notes <details> <summary>microsoft/playwright-mcp (@​playwright/mcp)</summary> ### [`v0.0.83`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.83) [Compare Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.82...v0.0.83) #### Bug Fixes - `browser_find` takes `filename` to save matches to a file instead of the response ([microsoft/playwright#42077](https://redirect.github.com/microsoft/playwright/issues/42077)). ([microsoft/playwright#42968](https://redirect.github.com/microsoft/playwright/pull/42968)) - `browser_navigate` and `browser_reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](https://redirect.github.com/microsoft/playwright/issues/42817)). ([microsoft/playwright#42908](https://redirect.github.com/microsoft/playwright/pull/42908)) - The server no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](https://redirect.github.com/microsoft/playwright/issues/42831)). ([microsoft/playwright#42922](https://redirect.github.com/microsoft/playwright/pull/42922)) - `browser_wait_for` reports when `time` is capped at 30 seconds ([#​1767](https://redirect.github.com/microsoft/playwright-mcp/issues/1767)). ([microsoft/playwright#42932](https://redirect.github.com/microsoft/playwright/pull/42932)) - WebMCP tools no longer stay bound to a stale tab or frame ([microsoft/playwright#42816](https://redirect.github.com/microsoft/playwright/issues/42816)). ([microsoft/playwright#42821](https://redirect.github.com/microsoft/playwright/pull/42821)) - WebMCP tool calls work with Chromium 155+. ([microsoft/playwright#42915](https://redirect.github.com/microsoft/playwright/pull/42915)) - Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](https://redirect.github.com/microsoft/playwright/issues/42807)). ([microsoft/playwright#42811](https://redirect.github.com/microsoft/playwright/pull/42811)) - The Docker image reaps orphaned browser processes ([#​1769](https://redirect.github.com/microsoft/playwright-mcp/issues/1769)). ([#​1771](https://redirect.github.com/microsoft/playwright-mcp/pull/1771)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/paulnsorensen/dotfiles). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Claude (dep-harvest) <paulnsorensen@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
## ✨ Highlights - **🔎 Save `browser_find` results to a file** — new `filename` parameter writes matches to a file instead of the response ([microsoft/playwright#42077](microsoft/playwright#42077)). ([microsoft/playwright#42968](microsoft/playwright#42968)) ## 🐛 Fixes - `browser_navigate` and `browser_reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](microsoft/playwright#42817)). ([microsoft/playwright#42908](microsoft/playwright#42908)) - The server no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](microsoft/playwright#42831)). ([microsoft/playwright#42922](microsoft/playwright#42922)) - `browser_wait_for` reports when `time` is capped at 30 seconds ([microsoft#1767](microsoft#1767)). ([microsoft/playwright#42932](microsoft/playwright#42932)) - WebMCP tools no longer stay bound to a stale tab or frame ([microsoft/playwright#42816](microsoft/playwright#42816)). ([microsoft/playwright#42821](microsoft/playwright#42821)) - WebMCP tool calls work with Chromium 155+. ([microsoft/playwright#42915](microsoft/playwright#42915)) - Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](microsoft/playwright#42807)). ([microsoft/playwright#42811](microsoft/playwright#42811)) - The Docker image reaps orphaned browser processes ([microsoft#1769](microsoft#1769)). ([microsoft#1771](microsoft#1771))
Summary
saveAsrejections from the MCP tab download handler; when the browser was closed mid-download the rejection fired after the context stopped listening for unhandled rejections and took down the server.Fixes #42831