Skip to content

straight-use-recipes breaks subsequent calls to straight-recipe-source #1254

@mjoerg

Description

@mjoerg

What's wrong

#1198 changed the order in bootstrap.el from

(setq straight-recipe-repositories nil)
(mapc #'straight-use-recipes straight-initial-recipe-repositories)
(straight-use-package 'straight)

to

(straight-use-package 'straight)
(setq straight-recipe-repositories nil)
(mapc #'straight-use-recipes straight-initial-recipe-repositories)

This leaves straight--recipe-lookup-cache in a state which straight-recipe-source does not expect, causing straight-bug-report-package-info called as part of straight-bug-report to fail with Error: (wrong-type-argument hash-table-p nil).

Directions to reproduce

Test Case 1

Test Case
(straight-bug-report)
  • Test run at: 2025-08-21 00:00:00
  • system-type: gnu/linux
  • straight-version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
  • emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4)
Output
Bootstrapping straight.el...
Bootstrapping straight.el...done
Building straight...
Building straight...done
Test run with version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
Error: (wrong-type-argument hash-table-p nil)

Test Case 2

Test Case
(straight-bug-report
  :post-bootstrap
  ;; this fixes straight--recipe-lookup-cache
  (straight-recipes-retrieve 'uncached-package))
  • Test run at: 2025-08-21 00:00:00
  • system-type: gnu/linux
  • straight-version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
  • emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4)
Output
Bootstrapping straight.el...
Bootstrapping straight.el...done
Building straight...
Building straight...done
Test run with version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
Looking for uncached-package recipe → Cloning melpa...
Looking for uncached-package recipe → Cloning melpa...done
Looking for uncached-package recipe → Cloning gnu-elpa-mirror...
Looking for uncached-package recipe → Cloning gnu-elpa-mirror...done
Looking for uncached-package recipe → Cloning nongnu-elpa...
Looking for uncached-package recipe → Cloning nongnu-elpa...done
Looking for uncached-package recipe → Cloning el-get...
Looking for uncached-package recipe → Cloning el-get...done
Looking for uncached-package recipe → Cloning emacsmirror-mirror...
Looking for uncached-package recipe → Cloning emacsmirror-mirror...done
Packages:
"straight"                n/a                  develop 341e01e 2025-08-15
"org-elpa"                n/a                  n/a
"melpa"                   n/a                  master 7e467858 2025-08-17
"gnu-elpa-mirror"         n/a                  master 4809077 2025-08-20
"nongnu-elpa"             n/a                  main 1033e9d 2025-08-04
"el-get"                  n/a                  master 8d3edab7 2025-07-23
"emacsmirror-mirror"      n/a                  master c7f543c 2025-08-20

Test Case 3

Test Case
(straight-bug-report
  :pre-bootstrap
  (setq straight-initial-recipe-repositories
        (list
         '(melpa :type git :host github
                 :repo "melpa/melpa"
                 :build nil)
         '(org-elpa :local-repo nil)))
  :post-bootstrap
  ;; this fixes straight--recipe-lookup-cache
  (straight-recipes-retrieve 'uncached-package)
  ;; this breaks straight--recipe-lookup-cache again
  (straight-use-recipes
   '(gnu-elpa-mirror :type git :host github
                     :repo "emacs-straight/gnu-elpa-mirror")))
  • Test run at: 2025-08-21 00:00:00
  • system-type: gnu/linux
  • straight-version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
  • emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4)
Output
Bootstrapping straight.el...
Bootstrapping straight.el...done
Building straight...
Building straight...done
Test run with version: prerelease (HEAD -> develop, origin/develop) 341e01e 2025-08-15
Looking for uncached-package recipe → Cloning melpa...
Looking for uncached-package recipe → Cloning melpa...done
Error: (wrong-type-argument hash-table-p nil)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions