     (dolist (spec straight-profiles)
       (cl-destructuring-bind (_profile . versions-lockfile) spec
         (let ((lockfile-path (straight--versions-file versions-lockfile)))
-          (when-let ((versions-alist (ignore-errors
-                                       (with-temp-buffer
-                                         (insert-file-contents-literally
-                                          lockfile-path)
-                                         (read (current-buffer))))))
+          (when-let* ((versions-alist (ignore-errors
+                                        (with-temp-buffer
+                                          (insert-file-contents-literally
+                                           lockfile-path)
+                                          (read (current-buffer))))))
             (dolist (spec versions-alist)
               (cl-destructuring-bind (local-repo . commit) spec
                 (setq versions (straight--alist-set

           (straight--build-dir package)))
        ;; And for some reason Emacs leaves a newly created buffer
        ;; lying around. Let's kill it.
        (when-let ((buf (find-buffer-visiting generated-autoload-file)))
          (kill-buffer buf))))))

;;;;; Byte-compilation

         (cause (concat cause (when cause straight-arrow)
                        (format "Looking for %s recipe" package))))
    (cl-dolist (source sources)
      (when-let* ((recipe (straight-recipes 'retrieve source cause package)))
        (cl-return recipe)))))

(defun straight-recipes-list (&optional sources cause)
