          (if (nil? handler-fn)
            (do (trace/merge-trace! {:error true})
                (console :error (str "re-frame: no subscription handler registered for: \"" query-id "\". Returning a nil subscription.")))
-           (cache-and-return query [] (handler-fn app-db query)))))))
+           (let [sub-reaction (handler-fn app-db query)]
+             (do (trace/merge-trace! {:tags {:sub-value (deref sub-reaction)}})
+                 (cache-and-return query [] sub-reaction))))))))
 
   ([query dynv]
    (trace/with-trace {:operation (first-in-vector query)

               reaction-id   (atom nil)
               reaction      (make-reaction
                               (fn []
                                 (trace/with-trace {:operation (first-in-vector query-vec)
                                                    :op-type   :sub/run
                                                    :tags      {:query-v  query-vec
                                                                :dyn-v    dyn-vec
                                                                :reaction @reaction-id}}
                                   (computation-fn (deref-input-signals subscriptions query-id) query-vec dyn-vec))))]
           (reset! reaction-id (reagent-id reaction))
           reaction))))))

     (if-let [cached (cache-lookup query)]
       (do
         (trace/merge-trace! {:tags {:cached?  true
                                     :sub-value (deref cached)
                                     :reaction (reagent-id cached)}})
         cached)

