code: func (m *manager) updateServerError(err error) error {
  	m.certAccessLock.Lock()
  	defer m.certAccessLock.Unlock()
  	switch {
  	case errors.IsUnauthorized(err):
  		// SSL terminating proxies may report this error instead of the master
  		m.serverHealth = true
  	case errors.IsUnexpectedServerError(err):
  		// generally indicates a proxy or other load balancer problem, rather than a problem coming
  		// from the master
  		m.serverHealth = false
  	default:
  		// Identify known errors that could be expected for a cert request that
  		// indicate everything is working normally
  		m.serverHealth = errors.IsNotFound(err) || errors.IsForbidden(err)
  	}
  	return nil
  }
docs: // updateServerError takes an error returned by the server and infers
  // the health of the server based on the error. It will return nil if
  // the error does not require immediate termination of any wait loops,
  // and otherwise it will return the error.