From 741d8935ae9299a5e122a5a79fceeadb5ec91fc4 Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Sat, 9 May 2026 09:28:54 -0700 Subject: [PATCH] fix(server): use fs.promises.rm to delete temp upload directories _deleteAllTempDirs uses fs.promises.unlink which cannot remove directories (returns EISDIR on Linux, EPERM on Windows). The error is silently caught, so temp upload directories are never cleaned up. Use fs.promises.rm with recursive and force options instead. Signed-off-by: Sebastien Tardif --- packages/playwright-core/src/server/browserContext.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/playwright-core/src/server/browserContext.ts b/packages/playwright-core/src/server/browserContext.ts index 1b7c0856e3ba9..cf687c56836a2 100644 --- a/packages/playwright-core/src/server/browserContext.ts +++ b/packages/playwright-core/src/server/browserContext.ts @@ -527,7 +527,7 @@ export abstract class BrowserContext extends Sdk } private async _deleteAllTempDirs(): Promise { - await Promise.all(this._tempDirs.map(async dir => await fs.promises.unlink(dir).catch(e => {}))); + await Promise.all(this._tempDirs.map(async dir => await fs.promises.rm(dir, { recursive: true, force: true }).catch(e => {}))); } setCustomCloseHandler(handler: (() => Promise) | undefined) {