           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. "Peer should exist.")))
+                    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))

     :statuses statuses
     :ready? ready])
  (poll! [this]
    (.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 error nil nil nil nil false))
  (info [this]
    [:rv replica-version
     :e epoch
