Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/e2e-playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
# runner image rotated and dropped its pre-baked browser.
# Pinned by digest as well as tag so a mutated/republished :v1.60.0-noble
# tag cannot silently change the image we pull and run.
PLAYWRIGHT_IMAGE: mcr.microsoft.com/playwright:v1.60.0-noble@sha256:9bd26ad900bb5e0f4dee75839e957a89ae89c2b7ab1e76050e559790e946b948
PLAYWRIGHT_IMAGE: mcr.microsoft.com/playwright:v1.61.1-noble@sha256:5b8f294aff9041b7191c34a4bab3ac270157a28774d4b0660e9743297b697e48
Comment on lines 89 to +91

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Stale comment still references old tag.

Line 89 comment says "a mutated/republished :v1.60.0-noble tag" but the pin was bumped to v1.61.1-noble. Update the comment to match the new tag.

diff
-      # Pinned by digest as well as tag so a mutated/republished :v1.60.0-noble
+      # Pinned by digest as well as tag so a mutated/republished :v1.61.1-noble
       # tag cannot silently change the image we pull and run.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Pinned by digest as well as tag so a mutated/republished :v1.60.0-noble
# tag cannot silently change the image we pull and run.
PLAYWRIGHT_IMAGE: mcr.microsoft.com/playwright:v1.60.0-noble@sha256:9bd26ad900bb5e0f4dee75839e957a89ae89c2b7ab1e76050e559790e946b948
PLAYWRIGHT_IMAGE: mcr.microsoft.com/playwright:v1.61.1-noble@sha256:5b8f294aff9041b7191c34a4bab3ac270157a28774d4b0660e9743297b697e48
# Pinned by digest as well as tag so a mutated/republished :v1.61.1-noble
# tag cannot silently change the image we pull and run.
PLAYWRIGHT_IMAGE: mcr.microsoft.com/playwright:v1.61.1-noble@sha256:5b8f294aff9041b7191c34a4bab3ac270157a28774d4b0660e9743297b697e48
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/e2e-playwright.yml around lines 89 - 91, The comment above
the PLAYWRIGHT_IMAGE pin is stale because it still references the old
v1.60.0-noble tag while the image is now pinned to v1.61.1-noble. Update the
explanatory comment in the e2e-playwright workflow to match the current
digest-pinned Playwright image tag so the note accurately reflects the value
used in the workflow.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

microsoft/playwright issue ERR_STREAM_PREMATURE_CLOSE v1.61.1 fixed

💡 Result:

The ERR_STREAM_PREMATURE_CLOSE error is generally a Node.js runtime exception rather than a specific issue within Playwright v1.61.1 [1][2]. Technical context: 1. Origin of Error: This error occurs when a stream is closed before it has fully completed, commonly triggered in Node.js environments when a client disconnects during an active response or data transfer [1]. It has been observed appearing in Node.js versions 24.9–24.17 and 26.x [2]. 2. Playwright v1.61.1: Playwright v1.61.1 does not contain a specific fix for an internal ERR_STREAM_PREMATURE_CLOSE issue [3][4]. In fact, recent community reports indicate that users may encounter this error in Playwright environments if they are running specific, affected versions of Node.js (e.g., Node 24.17.0) within their Docker images or local setups [5]. 3. Recommended Resolution: If you are encountering this error, it is typically addressed by investigating the Node.js version in your environment or by implementing error handling (e.g., a try/catch block around the streaming pipeline) in the code consuming the streams, as the error often reflects a client-side disconnect rather than a defect in the Playwright library itself [1][5]. If you are seeing this consistently in CI, check if your Node.js runtime has been updated to one of the versions known to be affected by this stream handling behavior [5][2].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the workflow around the pinned Playwright image and the steps that use it.
git ls-files .github/workflows/e2e-playwright.yml
echo '---'
cat -n .github/workflows/e2e-playwright.yml | sed -n '1,220p'

Repository: CodesWhat/drydock

Length of output: 10485


🌐 Web query:

Playwright v1.61.1 noble Node 24.17.0 ERR_STREAM_PREMATURE_CLOSE image release notes

💡 Result:

Playwright version 1.61.1 was released on June 23, 2026 [1][2]. The release contains several bug fixes and internal improvements but does not specifically mention a dedicated "noble" image or a direct fix for ERR_STREAM_PREMATURE_CLOSE in its primary release notes [3][1]. Regarding your query elements: Playwright v1.61.1 Release Notes: The release primarily focused on bug fixes, including resolutions for: - Expect.Extend matcher issues [1][2]. - Playwright UI mode reporting incorrect byte counts in apiRequestContext [1][2]. - Trace viewer websocket message timestamp scaling errors [1][2]. - Regression fixes for sync loaders on certain Node.js versions and ESM loader resolution for subpath imports [1][2]. Node 24.17.0: While you mentioned Node 24.17.0, it is not explicitly listed as a new dependency or fix in the v1.61.1 release notes [3]. However, dependency management tools often report updates to Playwright v1.61.1 alongside updates to Node.js environments (e.g., 24.x) in CI configurations [4][5]. Noble/Docker Image: The v1.61.1 commit history shows the addition of support for Ubuntu 26.04 (Resolute Raccoon) in the Docker image [3]. If "noble" refers to a specific environment or container label, please note that Playwright's official Docker images are regularly updated to support new Ubuntu releases, and this version added support for the 26.04 release [3]. ERR_STREAM_PREMATURE_CLOSE: This error is a standard Node.js stream error that occurs when a readable stream is destroyed before the stream has finished [6]. It is not a Playwright-specific bug, though it can appear in Playwright test logs when a browser or client disconnects unexpectedly during a request or stream [6][7]. If you are encountering this in your CI environment, it often indicates that a network request or browser session was terminated mid-process [6]. It is typically handled in application code by wrapping stream operations in error handlers to ignore this specific error if the closure is expected [6].

Citations:


🌐 Web query:

site:github.com/microsoft/playwright "v1.61.1-noble" "Node 24.17.0" "ERR_STREAM_PREMATURE_CLOSE"

💡 Result:

The error ERR_STREAM_PREMATURE_CLOSE reported in Playwright Docker images using Node.js 24.17.0 is a known issue associated with a regression in Node.js, specifically affecting operations involving stream handling and zip extraction (such as when running playwright install) [1][2]. Context and Details: - The issue was identified in June 2026, specifically affecting Node.js 24.17.0 within the Playwright v1.61.1-noble Docker environment [1]. - This behavior is linked to broader instability in Node.js 24.16.0+ regarding stream lifecycles, which previously caused processes to hang or throw premature close errors in tools utilizing libraries like extract-zip and yauzl [3][2]. - While Playwright implemented internal fixes to mitigate stream-related issues in earlier versions (such as in PR #40924) [3], the introduction of Node.js 24.17.0 reintroduced regressions that caused the ERR_STREAM_PREMATURE_CLOSE error during browser installation or other stream-heavy tasks [1]. To resolve or work around this, users have been advised to check for updated Playwright Docker images that address the Node.js environment or to use a compatible, stable version of Node.js if the current release remains broken for their specific use case [1][2]. Users are encouraged to monitor the official Playwright GitHub repository for patches addressing this specific Node.js regression [1].

Citations:


Pin a fixed Playwright image. v1.61.1-noble pulls the Node 24.17.0 runtime that can hit ERR_STREAM_PREMATURE_CLOSE in the containerized npm ci / Playwright install path, so this can fail before the tests start. Move to a Playwright image with the Node regression fixed.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/e2e-playwright.yml at line 91, The PLAYWRIGHT_IMAGE value
in the e2e Playwright workflow is pinned to an image that brings in a Node
runtime regression and can break npm ci / Playwright install before tests start.
Update the PLAYWRIGHT_IMAGE reference in the workflow to a newer Playwright
container tag or digest that includes the fixed Node version, keeping the image
pinned to a specific known-good release. Ensure the change is made in the
e2e-playwright workflow entry that defines PLAYWRIGHT_IMAGE.


steps:
- name: Harden Runner
Expand Down
73 changes: 68 additions & 5 deletions e2e/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion e2e/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
},
"devDependencies": {
"@dotenvx/dotenvx": "1.57.1",
"@playwright/test": "1.60.0",
"@playwright/test": "1.61.1",
"artillery": "2.0.32",
"lodash": "4.18.1"
},
Expand Down
Loading