                this
                subscriber)]
       (.add ^Set subscriptions sub)
-      (signal-subscribe sub)
+      (try
+        (.onSubscribe subscriber sub)
+        (catch Throwable t
+          (terminate sub (IllegalStateException. "Violated the Reactive Streams rule 2.13"))))
+      ;; Temporary avoid async subscription because
+      ;; Ratpack has a bug with them: https://github.com/ratpack/ratpack/issues/682
+      ;; (signal-subscribe sub)
       sub)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        (when-not (.isEmpty ^Queue queue)
          (schedule this))))))

(deftype Publisher [source subscriptions options]
  clojure.lang.Seqable
  (seq [p]

        ^Subscriber subscriber (.-subscriber sub)
        source (.-source publisher)
        canceled (.-canceled sub)]
    (try
      (.onSubscribe subscriber sub)
      (catch Throwable t
        (terminate sub (IllegalStateException. "Violated the Reactive Streams rule 2.13"))))
    (when (asyncp/closed? source)
      (try
        (handle-cancel sub)
        (.onComplete subscriber)
        (catch Throwable t
          ;; (IllegalStateException. "Violated the Reactive Streams rule 2.13")
          )))))

(defn- handle-send
  [sub]
