[SignalR TS] Fix permanent Disconnecting state (#30948) #31251
Merged
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.
Backport of #30948
Description
If using automatic-reconnect, having an error during negotiate, and calling
connection.stop
can put the client in an unusable state. The only solution is to create a new connection from scratch, which means re-adding.on
methods and event handlers.The steps might look a bit convoluted, but it's fairly simple to hit if you put your PC to sleep and have an authenticated endpoint, when the PC wakes up and the connection tries to reconnect it can get an auth error and if you call stop because you know it will have an auth error you will hit this issue.
Customer Impact
Customer can get into a state where the SignalR connection is permanently in the disconnecting state and will never be usable again.
Regression?
Risk
Test coverage is good, and new test added for this scenario.
Verification
Packaging changes reviewed?