When there are two injected providers installed in the browser, e.g. MetaMask and WalletLink, and a user accepts one connection and rejects the other (common flow), the rejected connection throws an error and isActive state is not set to true for the accepted connector. This also blocks network switch requests which should appear after the connection is accepted. isActive state fixes itself on refresh. Can't find a reliable workaround.
This bug should probably be fixed with handling of multiple injected connectors, there's another issue here: #300
IMO multiple popups for injected connectors is pretty confusing UX and I don't think it should be the default.
The mustBeMetaMask flag for MM also doesn't fix the issue.