           pub ^Publication (get-publication messenger conn-info)
           unsafe-buffer (protocol/build-retry-msg-buf id retry-id)
           offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/retry-msg-length))]
-      (while (neg? ^long (offer-f))
+      (while (= ^long (offer-f) publication-backpressured?)
         (.idle ^IdleStrategy idle-strategy 0)))))
 
 (defmethod extensions/close-peer-connection AeronConnection

          pub ^Publication (get-publication messenger conn-info)
          unsafe-buffer (protocol/build-completion-msg-buf id completion-id)
          offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/completion-msg-length))]
      (while (neg? ^long (offer-f))
        (.idle ^IdleStrategy idle-strategy 0)))))

(defn retry-message-short-circuit [ch retry-id]

          offer-f (fn [] (.offer pub unsafe-buffer 0 len))
          idle-strategy (:send-idle-strategy messenger)]
      ;;; TODO: offer will return a particular code when the publisher is down
      ;;; we should probably re-establish the publication in this case
      (while (= ^long (offer-f) publication-backpressured?)
        (.idle ^IdleStrategy idle-strategy 0)))))

(defn ack-messages-short-circuit [ch acks]
