From aa1e736f3fe85a3c8e9f388650a1f42847dd317b Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Tue, 28 Jun 2022 18:19:31 +0200 Subject: [PATCH] chore: print response body when browser download failed (#15101) --- .../src/server/registry/download.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/playwright-core/src/server/registry/download.ts b/packages/playwright-core/src/server/registry/download.ts index 0aba083619..d4c2065aab 100644 --- a/packages/playwright-core/src/server/registry/download.ts +++ b/packages/playwright-core/src/server/registry/download.ts @@ -48,10 +48,17 @@ function downloadFile(url: string, destinationPath: string, options: DownloadFil }, response => { log(`-- response status code: ${response.statusCode}`); if (response.statusCode !== 200) { - const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`); - // consume response data to free up memory - response.resume(); - fulfill({ error }); + let content = ''; + const handleError = () => { + const error = new Error(`Download failed: server returned code ${response.statusCode} body '${content}'. URL: ${url}`); + // consume response data to free up memory + response.resume(); + fulfill({ error }); + }; + response + .on('data', chunk => content += chunk) + .on('end', handleError) + .on('error', handleError); return; } const file = fs.createWriteStream(destinationPath);