Skip to content

grpc-js: Preserve HTTP/2 reset codes on write errors - #3111

Merged
murgatroid99 merged 1 commit into
grpc:masterfrom
kahirokunn:fix/grpc-js-refused-stream-write
Oct 28, 2026
Merged

murgatroid99 merged 1 commit into
grpc:masterfrom
kahirokunn:fix/grpc-js-refused-stream-write

Conversation

@kahirokunn

Copy link
Copy Markdown
Contributor

When GOAWAY refuses a queued HTTP/2 stream, its write-error callback can run before the close handler. That path drops rstCode, so REFUSED_STREAM is surfaced as UNAVAILABLE instead of being transparently retried.

Preserve the reset code on write errors so the existing retry logic can recognize refused streams. Add regression tests covering retry without duplicate processing, disabled retries, and connection drops after processing.

Signed-off-by: kahirokunn <okinakahiro@gmail.com>
@murgatroid99
murgatroid99 merged commit ca7f83f into grpc:master Oct 28, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants