                           (catch FileAlreadyExistsException ex
                             false))]
              (if moved?
-               (do
-                 (.getAndIncrement next)
-                 (entry id metadata))
-               (recur (.getAndIncrement next)))))
+               (entry id metadata)
+               (recur))))
          (catch Exception ex
            (throw (ex-info "unable to commit" {:kind ::unable-to-commit
                                                :stream-data tmp-dest}

           (throw ex)))
       (try
         (fsync tmp-dest false)
         (loop [id likely-id]
           (let [target (queue-entry-path q id metadata)
                 ;; Can't recur from catch
                 moved? (try
                          (rename-durably tmp-dest target true)

  ([q stream] (store q stream nil))
  ([q ^ByteArrayInputStream stream metadata]
   (let [^AtomicLong next (:next-likely-id q)
         qd (qpath q)]
     (let [^Path tmp-dest (create-tmp-file qd)]
       ;; It might be possible to optimize some cases with
