   "given a Deferred keep only errors, otherwise returning Deferred<nil>"
   [dv]
   (-> dv
-      (d/chain (constantly nil))
-      (d/catch (fn [e] e))))
+      (d/chain (fn [v] (when (instance? Throwable v) v)))))
 
 (s/defn denormalize-rel
   "denormalizes a single relationship"

                                       denorm-op
                                       opts))
                             (st/buffer (or (:buffer-size opts) 25))
                             (st/map only-error)
                             (st/filter identity))]

           maybe-err (st/take! trerrs)]

      ;; if there are errors, return the first as an exemplar
      (if (nil? maybe-err)

        denorm-vals (->> (:denormalize denorm-rel)
                         (map (fn [[scol tcol]]
                                [tcol (get source-record scol)]))
                         (into {}))]
    (case denorm-op

      :upsert
