fix: avoid double registration on reconnect