Repository navigation
fix: handle unmatched WebSocket upgrade errors (fix #23727) - #23732
Closed
koriyoshi2041 wants to merge 1 commit into
Closed
koriyoshi2041 wants to merge 1 commit into
koriyoshi2041 wants to merge 1 commit into
Conversation
Contributor
Author
|
Closing as #23728 already covers the same socket-ownership gap with a stronger direct error-emission regression. I missed it during the duplicate check before opening this. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A WebSocket upgrade without the
vite-hmrorvite-pingsubprotocol remains unowned by Vite. If that client resets the connection, the raw socket can emitECONNRESETwithout an error listener and terminate the dev server process.Fix
Attach an error listener before filtering HMR upgrade requests. This keeps unmatched sockets from producing uncaught errors while leaving the socket available to other upgrade listeners.
Test
pnpm test-unit packages/vite/src/node/__tests__/http.spec.ts(12 passed)git diff --checkpassed.expected false to be true).Risk
Low. The handler is a no-op and does not close or claim unmatched sockets, so proxy/plugin upgrade listeners retain existing behavior. Matching HMR and ping upgrades continue through the existing
wshandling path.