From b85b545f8a0da3d78fd23793df6f4dd91380e6e7 Mon Sep 17 00:00:00 2001 From: Omer Prizner Date: Sun, 27 Jul 2025 09:02:44 +0300 Subject: [PATCH 1/3] Add a catch to nativeStream.write(..) to avoid server crash. --- packages/qwik/src/core/render/ssr/render-ssr.ts | 2 +- packages/qwik/src/server/render.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/qwik/src/core/render/ssr/render-ssr.ts b/packages/qwik/src/core/render/ssr/render-ssr.ts index 06ca202b6a2..2a64a9928f4 100644 --- a/packages/qwik/src/core/render/ssr/render-ssr.ts +++ b/packages/qwik/src/core/render/ssr/render-ssr.ts @@ -57,7 +57,7 @@ const FLUSH_COMMENT = ''; /** @public */ export type StreamWriter = { - write: (chunk: string) => void; + write: (chunk: string) => Promise; }; /** @public */ diff --git a/packages/qwik/src/server/render.ts b/packages/qwik/src/server/render.ts index 8041c3ddfbf..fe9432d6643 100644 --- a/packages/qwik/src/server/render.ts +++ b/packages/qwik/src/server/render.ts @@ -50,7 +50,10 @@ export async function renderToStream( const resolvedManifest = resolveManifest(opts.manifest); function flush() { if (buffer) { - nativeStream.write(buffer); + nativeStream.write(buffer).catch((e) => { + console.error(`Could not write buffer: ${buffer.slice(0, 200)}...`); + console.error(e); + }); buffer = ''; bufferSize = 0; networkFlushes++; From fedd2500c3caffdbc1d4c0b0787bfa38c4df263f Mon Sep 17 00:00:00 2001 From: Omer Prizner Date: Sun, 27 Jul 2025 09:06:57 +0300 Subject: [PATCH 2/3] changeset --- .changeset/angry-snails-try.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/angry-snails-try.md diff --git a/.changeset/angry-snails-try.md b/.changeset/angry-snails-try.md new file mode 100644 index 00000000000..aca936c0b9c --- /dev/null +++ b/.changeset/angry-snails-try.md @@ -0,0 +1,5 @@ +--- +'@builder.io/qwik': patch +--- + +Add a catch to the flush's write invocation to avoid server crash From 7f5fc29702eb5b5f3b3733f8f3f34ff18de8c870 Mon Sep 17 00:00:00 2001 From: Omer Date: Sun, 27 Jul 2025 16:03:29 +0300 Subject: [PATCH 3/3] Update render-ssr.ts - fix lint --- packages/qwik/src/core/render/ssr/render-ssr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/qwik/src/core/render/ssr/render-ssr.ts b/packages/qwik/src/core/render/ssr/render-ssr.ts index 2a64a9928f4..911954aa357 100644 --- a/packages/qwik/src/core/render/ssr/render-ssr.ts +++ b/packages/qwik/src/core/render/ssr/render-ssr.ts @@ -243,7 +243,7 @@ const renderGenerator = async ( let value: AsyncGenerator; if (isFunction(generator)) { const v = generator({ - write(chunk) { + async write(chunk) { stream.write(chunk); stream.write(FLUSH_COMMENT); },