      [#_(handle-add-upstream id (:id node))]]
 
     (let [forwarded-subscription-messages (forward-subscription downstream
-                                                                subscriber-contact-address)]
+                                                                subscriber-contact-address
+                                                                envelope-id)]
       (when (empty? forwarded-subscription-messages)
         (throw (ex-info "Failed either to accept or forward subscription"
                         {:node node :subscriber-contact-address subscriber-contact-address})))

  (< (*rand*) cutoff))

(s/defn forward-subscription :- [MessageEnvelopeSchema]
  "Take a node's 'downstream map and a new 'subscription.

  Return a seq of message-envelopes that communicate the forwarded
  subscription."
  [downstream :- NodeNeighborsSchema
   subscription :- SubscriptionSchema]
  {:post [(vector? %)]}
  (if (empty? downstream)
    []

      (rand-nth* (seq downstream))
      :forwarded-subscription
      subscription
      envelope-id]]))

(defn handle-add-upstream
  "Take a node (?) and a new upstream 'id, and add the upstream node to this node's :upstream."
