Uh oh!
There was an error while loading. Please reload this page.
fix(trace): keep client paths out of remote launch options - #42436
fix(trace): keep client paths out of remote launch options#42436Devin Rousso (dcrousso) wants to merge 1 commit into
Conversation
remote browser servers can receive Playwright Test worker paths and try to write trace files on the client filesystem remove `artifactsDir` and `tracesDir` from remote launch options
Test results for "tests 1"5 flaky51325 passed, 1239 skipped Merge workflow run. |
Test results for "MCP"1 failed 8258 passed, 1361 skipped Merge workflow run. |
Hi, I'm the Playwright bot and I took a look at the CI failures here. 🟢 The PR is clear — the one failure is a pre-existing Firefox flakeThe single red test, DetailsOverall: no failure is attributable to this PR. One real red, confirmed pre-existing flake; the rest is retry-rescued noise. Pre-existing flake / infra
Triaged by the Playwright bot - agent run |
Arkadiusz Czekajski (aczekajski)
commented
Aug 28, 2026
A bit of a nitpick, but it seems like the options coming from the and the filtering function looking like this: playwright/packages/playwright-core/src/remote/playwrightServer.ts Lines 368 to 384 in 20e2f50 so the tracesDir was being filtered out anyway and artifactsDir was in fact allowed only when isUnsafe was being passed. And it is true that in my case where I had an error, I was launching the server with --usafe flag. My guess is that passing artifactsDir as a launch option is something used by the extension so it cannot be completely filtered out in there. Maybe the that filtering fn should make a distinction between "extension mode" and "--unsafe"? 🤔 |
Arkadiusz Czekajski (aczekajski)
commented
Aug 28, 2026
Btw backporting just this small change to 1.62.1 also makes the |
| headers: { | ||
| // HTTP headers are ASCII only (not UTF-8). | ||
| 'x-playwright-launch-options': jsonStringifyForceASCII(_browserOptions), | ||
| 'x-playwright-launch-options': jsonStringifyForceASCII({ |
There was a problem hiding this comment.
Filters like this should be done on the server side. In fact, we already do something along these lines in packages/playwright-core/src/remote/playwrightServer.ts (see filterLaunchOptions) - why doesn't that work?
remote browser servers can receive Playwright Test worker paths and try to write trace files on the client filesystem
remove
artifactsDirandtracesDirfrom remote launch optionsfixes#42394