async _scheduleNextPoll () {
    try {
      const {
        body: {
          status: {
            lastSync = null,
            observedGeneration = 0
          } = {}
        } = {}
      } = await this._status.get()

      const currentGeneration = this._externalSecret.metadata.generation

      if (observedGeneration < currentGeneration) {
        return this._setNextPoll(0)
      }

      // If polling is disabled we only react to changes in the ExternalSecret
      if (this._pollingDisabled) {
        return
      }

      const now = Date.now()
      const lastPollTime = Date.parse(lastSync) || 0

      // If time somehow ends up in the future we schedule a new poll
      // right away and hopefully get a new saner value
      if (lastPollTime > now) {
        return this._setNextPoll(0)
      }

      const elapsedTime = now - lastPollTime
      const nextPollIn = Math.max(this._intervalMilliseconds - elapsedTime, 0)

      return this._setNextPoll(nextPollIn)
    } catch (err) {
      this._logger.error(err, `status check went boom for ${this._namespace}/${this._name}`)
    }
  }
Checks status of external secret and determines time to next poll
If current observed generation is older than ES generation it will poll right away
otherwise check when it was last polled and set timeout for next poll