      :statuses statuses
      :ready? ready])
   (poll! [this]
+    (when @error (throw @error))
     (.poll ^Subscription subscription ^FragmentHandler this fragment-limit-receiver))
   (set-endpoint-peers! [this expected-peers]
     (->> expected-peers

     (catch Throwable t
       (info "Error closing endpoint subscription:" t)))
     (.close conn)
    (EndpointStatus. peer-config peer-id session-id nil nil nil nil nil nil false))
  (info [this]
    [:rv replica-version
     :e epoch

          2 (when (= peer-id (:dst-peer-id message))
              (let [src-peer-id (:src-peer-id message)
                    epoch (:epoch message)
                    peer-status (or (get statuses src-peer-id) 
                                    (throw (Exception. "Heartbeating peer does not exist for this replica-version.")))
                    prev-epoch (:epoch peer-status)]
                (when-not (or (= epoch (inc prev-epoch))
                              (= epoch prev-epoch))
