@VisibleForTesting
  protected void pauseOrUnregisterProxy(Throwable t) {
    if (getProxy().isDurable()) {
      try {
        getProxy().pauseDispatching();
      } catch (Exception ex) {
        // see bug 40611; we catch Exception here because
        // we once say an InterruptedException here.
        // log a warning saying we couldn't pause?
        if (logger.isDebugEnabled()) {
          logger.debug("{}: {}", this, ex);
        }
      }
    } else {
      _isStopped = true;
    }

    // Stop the ServerConnections. This will force the client to
    // server communication to close.
    ClientHealthMonitor chm = ClientHealthMonitor.getInstance();

    // Note now that _proxy is final the following comment is no
    // longer true. the _isStopped check should be sufficient.
    // Added the test for this._proxy != null to prevent bug 35801.
    // The proxy could have been stopped after this IOException has
    // been caught and here, so the _proxy will be null.
    if (chm != null) {
      ClientProxyMembershipID proxyID = getProxy().proxyID;
      chm.removeAllConnectionsAndUnregisterClient(proxyID, t);
      if (!getProxy().isDurable()) {
        getProxy().getCacheClientNotifier().unregisterClient(proxyID, false);
      }
    }
  }
for old client, don't wait for re-auth but unregister this proxy completely.
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java