Make sure Accounts login only sets 1 onReconnect callback #9148
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.
The changes added in d854a4b fixed a long standing issue where the Accounts system was overwriting other DDP
connection.onReconnect
callbacks, that were potentially set by developers (and vice-versa - developers could overwrite theonReconnect
callback registered by the Accounts system, which impacted logging back in after reconnecting). Unfortunately these changes are also registering a new duplicateonReconnect
callback to be called, after every login. These duplicate callbacks pile up and are all called when reconnecting, which eventually breaks user logins.The changes in this commit make sure that any previously set Accounts login
onReconnect
callback is first removed, before adding a new callback. This ensures the Accounts system is only ever setting oneonReconnect
callback after logging in.Fixes #9140.