diff --git a/lib/dispatcher/client-h2.js b/lib/dispatcher/client-h2.js index 8155d6e226a..c824ea9becb 100644 --- a/lib/dispatcher/client-h2.js +++ b/lib/dispatcher/client-h2.js @@ -253,6 +253,7 @@ function writeH2 (client, request) { /** @type {import('node:http2').ClientHttp2Stream} */ let stream + let isStreamResponseStarted = false const { hostname, port } = client[kUrl] @@ -388,6 +389,7 @@ function writeH2 (client, request) { ++session[kOpenStreams] stream.once('response', headers => { + isStreamResponseStarted = true const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers request.onResponseStarted() @@ -419,7 +421,7 @@ function writeH2 (client, request) { }) stream.on('data', (chunk) => { - if (request.onData(chunk) === false) { + if (!isStreamResponseStarted || request.onData(chunk) === false) { stream.pause() } })