2

I somehow messed up my magit/forge db, and now emacs won't forgive me. Now I can't open magit's status buffer, and sometimes not even a file buffer opens.

This is all I can gather from the Messages buffer:

Cannot insert ("'" "Forge" forge-dispatch) into magit-dispatch; % not found
Turning on magit-auto-revert-mode...done
For information about GNU Emacs and the GNU system, type C-h C-a.
slot-missing: Invalid slot name: "#<forge-database forge-database-156f3376b4d8>", :file

I tried a full package refresh, and greped the whole .emacs dir for the hash 156f3376b4d8, but no luck so far.

I have no idea where to begin. Halp? Does anyone know what this error means?

EDIT

This appears when I refresh packages (delete ~/.emacs.d/elpa/ and reinstall all packages) and run with --debug-init:

Debugger entered--Lisp error: (invalid-slot-name "#<forge-database forge-database-1579ce5eb718>" :file)
  signal(invalid-slot-name ("#<forge-database forge-database-1579ce5eb718>" :file))
  slot-missing(#<forge-database forge-database-1579ce5eb718> :file oset "/home/philsf/.emacs.d/forge-database.sqlite")
  #f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode 0x1579cdb1622d>)(#<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  apply(#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode 0x1579cdb1622d>) #<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  shared-initialize(#<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  #f(compiled-function (this &optional slots) "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS." #<bytecode 0x1579cdb16259>)(#<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  apply(#f(compiled-function (this &optional slots) "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically.  If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS." #<bytecode 0x1579cdb16259>) #<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  initialize-instance(#<forge-database forge-database-1579ce5eb718> (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0x1579cdcbd371>)(forge-database :file "/home/philsf/.emacs.d/forge-database.sqlite")
  apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0x1579cdcbd371>) forge-database (:file "/home/philsf/.emacs.d/forge-database.sqlite"))
  make-instance(forge-database :file "/home/philsf/.emacs.d/forge-database.sqlite")
  #f(compiled-function (class &optional variable file debug) #<bytecode 0x1579ce62179d>)(forge-database forge--db-connection "/home/philsf/.emacs.d/forge-database.sqlite" t)
  apply(#f(compiled-function (class &optional variable file debug) #<bytecode 0x1579ce62179d>) forge-database (forge--db-connection "/home/philsf/.emacs.d/forge-database.sqlite" t))
  closql-db(forge-database forge--db-connection "/home/philsf/.emacs.d/forge-database.sqlite" t)
  (if (and forge--db-connection (emacsql-live-p forge--db-connection)) nil (make-directory (file-name-directory forge-database-file) t) (closql-db 'forge-database 'forge--db-connection forge-database-file t) (let* ((db forge--db-connection) (version (closql--db-get-version db)) (version (forge--db-maybe-update forge--db-connection version))) (cond ((> version forge--db-version) (emacsql-close db) (user-error "The Forge database was created with a newer Forge ..." "You need to update the Forge package.")) ((< version forge--db-version) (emacsql-close db) (error "BUG: The Forge database scheme changed %s" "and there is no upgrade path")))))
  forge-db()
  (apply #'emacsql (forge-db) sql args)
  (if (stringp sql) (emacsql (forge-db) (apply #'format sql args)) (apply #'emacsql (forge-db) sql args))
  forge-sql([:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] "github.com" "philsf" "dotemacs")
  (car (forge-sql [:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] forge owner name))
  (let* ((row (car (forge-sql [:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] forge owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (cond ((and (eq demand t) (or (not obj) (eieio-oref obj 'sparse-p))) (error "Cannot use `%s' in %S yet.\n%s" this-command (magit-toplevel) "Use `M-x forge-add-repository' before trying again...")) ((and (eq demand 'full) obj (eieio-oref obj 'sparse-p)) (setq obj nil))) (if (and (memq demand '(stub create)) (not obj)) (progn (let* ((val (forge--repository-ids class host owner name (eq demand ...))) (x1651 (car val)) (x1652 (cdr val))) (let ((forge-id x1652) (id x1651)) (if (setq obj (forge-get-repository ...)) nil (setq obj (funcall class :id id :forge-id forge-id :forge forge :owner owner :name name :apihost apihost :githost githost :remote remote)) (if (eq demand ...) (progn ...))))))) obj)
  (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* ((row (car (forge-sql [:select * :from repository :where (and ... ... ...)] forge owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (cond ((and (eq demand t) (or (not obj) (eieio-oref obj 'sparse-p))) (error "Cannot use `%s' in %S yet.\n%s" this-command (magit-toplevel) "Use `M-x forge-add-repository' before trying again...")) ((and (eq demand 'full) obj (eieio-oref obj 'sparse-p)) (setq obj nil))) (if (and (memq demand '(stub create)) (not obj)) (progn (let* ((val (forge--repository-ids class host owner name ...)) (x1651 (car val)) (x1652 (cdr val))) (let ((forge-id x1652) (id x1651)) (if (setq obj ...) nil (setq obj ...) (if ... ...)))))) obj))
  (let* ((x1643 (car spec)) (x1644 (cdr spec)) (x1645 (car x1644)) (x1646 (cdr x1644)) (x1647 (car x1646)) (x1648 (cdr x1646)) (x1649 (car x1648)) (x1650 (cdr x1648))) (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* ((row (car (forge-sql [:select * :from repository :where ...] forge owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (cond ((and (eq demand t) (or (not obj) (eieio-oref obj ...))) (error "Cannot use `%s' in %S yet.\n%s" this-command (magit-toplevel) "Use `M-x forge-add-repository' before trying again...")) ((and (eq demand 'full) obj (eieio-oref obj 'sparse-p)) (setq obj nil))) (if (and (memq demand '(stub create)) (not obj)) (progn (let* ((val ...) (x1651 ...) (x1652 ...)) (let (... ...) (if ... nil ... ...))))) obj)))
  (if spec (let* ((x1643 (car spec)) (x1644 (cdr spec)) (x1645 (car x1644)) (x1646 (cdr x1644)) (x1647 (car x1646)) (x1648 (cdr x1646)) (x1649 (car x1648)) (x1650 (cdr x1648))) (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* ((row (car (forge-sql ... forge owner name))) (obj (and row (closql--remake-instance class ... row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (cond ((and (eq demand t) (or ... ...)) (error "Cannot use `%s' in %S yet.\n%s" this-command (magit-toplevel) "Use `M-x forge-add-repository' before trying again...")) ((and (eq demand ...) obj (eieio-oref obj ...)) (setq obj nil))) (if (and (memq demand '...) (not obj)) (progn (let* (... ... ...) (let ... ...)))) obj))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist))))
  (let* ((spec (and t (assoc host forge-alist)))) (if spec (let* ((x1643 (car spec)) (x1644 (cdr spec)) (x1645 (car x1644)) (x1646 (cdr x1644)) (x1647 (car x1646)) (x1648 (cdr x1646)) (x1649 (car x1648)) (x1650 (cdr x1648))) (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* ((row (car ...)) (obj (and row ...))) (if obj (progn (eieio-oset obj ... apihost) (eieio-oset obj ... githost) (eieio-oset obj ... remote))) (cond ((and ... ...) (error "Cannot use `%s' in %S yet.\n%s" this-command ... "Use `M-x forge-add-repository' before trying again...")) ((and ... obj ...) (setq obj nil))) (if (and (memq demand ...) (not obj)) (progn (let* ... ...))) obj))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist)))))
  (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (let* ((spec (and t (assoc host forge-alist)))) (if spec (let* ((x1643 (car spec)) (x1644 (cdr spec)) (x1645 (car x1644)) (x1646 (cdr x1644)) (x1647 (car x1646)) (x1648 (cdr x1646)) (x1649 (car x1648)) (x1650 (cdr x1648))) (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* ((row ...) (obj ...)) (if obj (progn ... ... ...)) (cond (... ...) (... ...)) (if (and ... ...) (progn ...)) obj))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist))))))
  (let* ((--cl-rest-- (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (host (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (owner (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (name (car --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (demand (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (let* ((spec (and t (assoc host forge-alist)))) (if spec (let* ((x1643 (car spec)) (x1644 (cdr spec)) (x1645 (car x1644)) (x1646 (cdr x1644)) (x1647 (car x1646)) (x1648 (cdr x1646)) (x1649 (car x1648)) (x1650 (cdr x1648))) (let ((class x1649) (forge x1647) (apihost x1645) (githost x1643)) (let* (... ...) (if obj ...) (cond ... ...) (if ... ...) obj))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist)))))))
  (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (host (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (owner (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (name (car --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (demand (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (let* ((spec (and t (assoc host forge-alist)))) (if spec (let* ((x1643 ...) (x1644 ...) (x1645 ...) (x1646 ...) (x1647 ...) (x1648 ...) (x1649 ...) (x1650 ...)) (let (... ... ... ...) (let* ... ... ... ... obj))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host ...))))))))
  (closure (t) (&rest --cl-rest--) "((host owner name) &optional remote demand)\n\nRetur..." (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe ...) (signal ... ...))) (host (if (= ... 3) (car-safe ...) (signal ... ...))) (owner (car-safe (prog1 --cl-rest-- ...))) (name (car --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- ...))) (demand (car-safe (prog1 --cl-rest-- ...)))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil ...))) (let* ((spec ...)) (if spec (let* ... ...) (if ... ...)))))))(("github.com" "philsf" "dotemacs") "github" full)
  apply((closure (t) (&rest --cl-rest--) "((host owner name) &optional remote demand)\n\nRetur..." (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe ...) (signal ... ...))) (host (if (= ... 3) (car-safe ...) (signal ... ...))) (owner (car-safe (prog1 --cl-rest-- ...))) (name (car --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- ...))) (demand (car-safe (prog1 --cl-rest-- ...)))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil ...))) (let* ((spec ...)) (if spec (let* ... ...) (if ... ...))))))) ("github.com" "philsf" "dotemacs") ("github" full))
  forge-get-repository(("github.com" "philsf" "dotemacs") "github" full)
  (if parts (forge-get-repository parts remote demand) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url))))
  (let* ((parts (and t (forge--split-url url)))) (if parts (forge-get-repository parts remote demand) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url)))))
  (progn (let* ((parts (and t (forge--split-url url)))) (if parts (forge-get-repository parts remote demand) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url))))))
  (closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* ((parts (and t (forge--split-url url)))) (if parts (forge-get-repository parts remote demand) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url)))))))("git@github.com:philsf/dotemacs.git" "github" full)
  apply((closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* ((parts (and t (forge--split-url url)))) (if parts (forge-get-repository parts remote demand) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url))))))) "git@github.com:philsf/dotemacs.git" ("github" full))
  forge-get-repository("git@github.com:philsf/dotemacs.git" "github" full)
  (and t (forge-get-repository url remote demand))
  (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (eieio-oset repo 'worktree (magit-toplevel)) repo) nil))
  (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (eieio-oset repo 'worktree (magit-toplevel)) repo) nil)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\n%s  %s" (cond (remote (format "No url configured for %S." remote)) (remotes "Cannot decide on remote to use.") (t "No remote configured.")) "You might have to set `forge.remote'." "See https://magit.vc/manual/forge/Token-Creation.h..."))))
  (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (eieio-oset repo 'worktree (magit-toplevel)) repo) nil)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\n%s  %s" (cond (remote (format "No url configured for %S." remote)) (remotes "Cannot decide on remote to use.") (t "No remote configured.")) "You might have to set `forge.remote'." "See https://magit.vc/manual/forge/Token-Creation.h...")))))
  (let* ((remotes (magit-list-remotes)) (remote (or remote (if (cdr remotes) (car (member (forge--get-remote) remotes)) (car remotes))))) (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (eieio-oset repo 'worktree (magit-toplevel)) repo) nil)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\n%s  %s" (cond (remote ...) (remotes "Cannot decide on remote to use.") (t "No remote configured.")) "You might have to set `forge.remote'." "See https://magit.vc/manual/forge/Token-Creation.h..."))))))
  (if magit--refresh-cache (let ((G616 (list default-directory 'forge-get-repository demand))) (let ((it (assoc G616 (cdr magit--refresh-cache)))) (if it (progn (let* ((v magit--refresh-cache)) (setcar (car v) (+ ... 1))) (cdr it)) (let* ((v magit--refresh-cache)) (setcdr (car v) (+ (cdr ...) 1))) (let ((value (let* ... ...))) (let* ((v ...) (v magit--refresh-cache)) (setcdr v (cons v ...))) value)))) (let* ((remotes (magit-list-remotes)) (remote (or remote (if (cdr remotes) (car (member ... remotes)) (car remotes))))) (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t ...))) (if repo (progn (eieio-oset repo ... ...) repo) nil)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\n%s  %s" (cond ... ... ...) "You might have to set `forge.remote'." "See https://magit.vc/manual/forge/Token-Creation.h...")))))))
  (or forge-buffer-repository (and forge-buffer-topic (forge-get-repository forge-buffer-topic)) (if magit--refresh-cache (let ((G616 (list default-directory 'forge-get-repository demand))) (let ((it (assoc G616 (cdr magit--refresh-cache)))) (if it (progn (let* (...) (setcar ... ...)) (cdr it)) (let* ((v magit--refresh-cache)) (setcdr (car v) (+ ... 1))) (let ((value ...)) (let* (... ...) (setcdr v ...)) value)))) (let* ((remotes (magit-list-remotes)) (remote (or remote (if (cdr remotes) (car ...) (car remotes))))) (let* ((url (and t (and remote ...)))) (if url (let* ((repo ...)) (if repo (progn ... repo) nil)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\n%s  %s" ... "You might have to set `forge.remote'." "See https://magit.vc/manual/forge/Token-Creation.h..."))))))))
  (progn (or forge-buffer-repository (and forge-buffer-topic (forge-get-repository forge-buffer-topic)) (if magit--refresh-cache (let ((G616 (list default-directory 'forge-get-repository demand))) (let ((it (assoc G616 ...))) (if it (progn (let* ... ...) (cdr it)) (let* (...) (setcdr ... ...)) (let (...) (let* ... ...) value)))) (let* ((remotes (magit-list-remotes)) (remote (or remote (if ... ... ...)))) (let* ((url (and t ...))) (if url (let* (...) (if repo ... nil)) (if (memq demand forge--signal-no-entry) (progn ...))))))))
  (closure (t) (demand &optional remote) "Return the current forge repository.\n\nIf the `forg..." (progn (or forge-buffer-repository (and forge-buffer-topic (forge-get-repository forge-buffer-topic)) (if magit--refresh-cache (let ((G616 ...)) (let (...) (if it ... ... ...))) (let* ((remotes ...) (remote ...)) (let* (...) (if url ... ...)))))))(full)
  apply((closure (t) (demand &optional remote) "Return the current forge repository.\n\nIf the `forg..." (progn (or forge-buffer-repository (and forge-buffer-topic (forge-get-repository forge-buffer-topic)) (if magit--refresh-cache (let ((G616 ...)) (let (...) (if it ... ... ...))) (let* ((remotes ...) (remote ...)) (let* (...) (if url ... ...))))))) full nil)
  forge-get-repository(full)
  (and t (forge-get-repository 'full))
  (let* ((repo (and t (forge-get-repository 'full))) (format (and repo (eieio-oref repo 'issue-url-format)))) (if format (progn (if bug-reference-url-format nil (set (make-local-variable 'bug-reference-url-format) (if (and (fboundp ...) (forge-gitlab-repository--eieio-childp repo)) #'(lambda nil ...) (forge--format repo 'issue-url-format '...))) (set (make-local-variable 'bug-reference-bug-regexp) (if (and (fboundp ...) (forge-gitlab-repository--eieio-childp repo)) "\\(?3:[!#]\\)\\(?2:[0-9]+\\)" "#\\(?2:[0-9]+\\)"))) (if (derived-mode-p 'prog-mode) (bug-reference-prog-mode 1) (bug-reference-mode 1)) (add-hook 'completion-at-point-functions 'forge-topic-completion-at-point nil t)) nil))
  (if default-directory (let* ((repo (and t (forge-get-repository 'full))) (format (and repo (eieio-oref repo 'issue-url-format)))) (if format (progn (if bug-reference-url-format nil (set (make-local-variable 'bug-reference-url-format) (if (and ... ...) #'... (forge--format repo ... ...))) (set (make-local-variable 'bug-reference-bug-regexp) (if (and ... ...) "\\(?3:[!#]\\)\\(?2:[0-9]+\\)" "#\\(?2:[0-9]+\\)"))) (if (derived-mode-p 'prog-mode) (bug-reference-prog-mode 1) (bug-reference-mode 1)) (add-hook 'completion-at-point-functions 'forge-topic-completion-at-point nil t)) nil)) nil)
  (let* ((default-directory (and t (magit--safe-default-directory nil)))) (if default-directory (let* ((repo (and t (forge-get-repository 'full))) (format (and repo (eieio-oref repo 'issue-url-format)))) (if format (progn (if bug-reference-url-format nil (set (make-local-variable ...) (if ... ... ...)) (set (make-local-variable ...) (if ... "\\(?3:[!#]\\)\\(?2:[0-9]+\\)" "#\\(?2:[0-9]+\\)"))) (if (derived-mode-p 'prog-mode) (bug-reference-prog-mode 1) (bug-reference-mode 1)) (add-hook 'completion-at-point-functions 'forge-topic-completion-at-point nil t)) nil)) nil))
  forge-bug-reference-setup()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer hydra-autoloads.el> "~/.emacs.d/elpa/hydra-0.14.0/hydra-autoloads.el" nil nil "~/.emacs.d/elpa/hydra-0.14.0/hydra-autoloads.el" (25561513 63))
  find-file-noselect("/home/philsf/.emacs.d/elpa/hydra-0.14.0/hydra-auto...")
  autoload-find-generated-file()
  update-directory-autoloads("/home/philsf/.emacs.d/elpa/hydra-0.14.0")
  package-generate-autoloads(hydra "/home/philsf/.emacs.d/elpa/hydra-0.14.0")
  package--make-autoloads-and-stuff(#s(package-desc :name hydra :version (0 14 0) :summary "Make bindings that stick around." :reqs ((cl-lib (0 5))) :kind tar :archive "gnu" :dir nil :extras ((:url . "https://github.com/abo-abo/hydra") (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:keywords "bindings")) :signed nil) "/home/philsf/.emacs.d/elpa/hydra-0.14.0")
  package-unpack(#s(package-desc :name hydra :version (0 14 0) :summary "Make bindings that stick around." :reqs ((cl-lib (0 5))) :kind tar :archive "gnu" :dir nil :extras ((:url . "https://github.com/abo-abo/hydra") (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:keywords "bindings")) :signed nil))
  #f(compiled-function (&optional good-sigs) #<bytecode 0x1579ce40c479>)((#s(epg-signature :status good :key-id "066DAFCB81E42C40" :validity undefined :fingerprint "C433554766D3DDC64221BFAA066DAFCB81E42C40" :creation-time 1569088634 :expiration-time nil :pubkey-algorithm 1 :digest-algorithm 10 :class 0 :version 4 :notations nil)))
  #f(compiled-function () #<bytecode 0x1579ce83795d>)()
  package--with-response-buffer-1("http://elpa.gnu.org/packages/" #f(compiled-function () #<bytecode 0x1579ce83795d>) :file "hydra-0.14.0.tar.sig" :async nil :error-function #f(compiled-function () #<bytecode 0x1579ce40ff59>) :noerror t)
  package--check-signature("http://elpa.gnu.org/packages/" "hydra-0.14.0.tar" "hydra-0.14.0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0..." nil #f(compiled-function (&optional good-sigs) #<bytecode 0x1579ce40c479>))
  #f(compiled-function () #<bytecode 0x1579cdd91529>)()
  package--with-response-buffer-1("http://elpa.gnu.org/packages/" #f(compiled-function () #<bytecode 0x1579cdd91529>) :file "hydra-0.14.0.tar" :async nil :error-function #f(compiled-function () #<bytecode 0x1579cdda22d5>) :noerror nil)
  package-install-from-archive(#s(package-desc :name hydra :version (0 14 0) :summary "Make bindings that stick around." :reqs ((cl-lib (0 5))) :kind tar :archive "gnu" :dir nil :extras ((:url . "https://github.com/abo-abo/hydra") (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:keywords "bindings")) :signed nil))
  mapc(package-install-from-archive (#s(package-desc :name hydra :version (0 14 0) :summary "Make bindings that stick around." :reqs ((cl-lib (0 5))) :kind tar :archive "gnu" :dir nil :extras ((:url . "https://github.com/abo-abo/hydra") (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:keywords "bindings")) :signed nil) #s(package-desc :name pandoc-mode :version (2 31) :summary "Minor mode for interacting with Pandoc" :reqs ((hydra (0 10 0)) (dash (2 10 0))) :kind tar :archive "melpa-stable" :dir nil :extras ((:commit . "500e80666fb779457be8771c5613c177187ba0cc") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "pandoc") (:url . "http://joostkremers.github.io/pandoc-mode/")) :signed nil)))
  package-download-transaction((#s(package-desc :name hydra :version (0 14 0) :summary "Make bindings that stick around." :reqs ((cl-lib (0 5))) :kind tar :archive "gnu" :dir nil :extras ((:url . "https://github.com/abo-abo/hydra") (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:keywords "bindings")) :signed nil) #s(package-desc :name pandoc-mode :version (2 31) :summary "Minor mode for interacting with Pandoc" :reqs ((hydra (0 10 0)) (dash (2 10 0))) :kind tar :archive "melpa-stable" :dir nil :extras ((:commit . "500e80666fb779457be8771c5613c177187ba0cc") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:keywords "text" "pandoc") (:url . "http://joostkremers.github.io/pandoc-mode/")) :signed nil)))
  package-install(pandoc-mode dont-select)
  #f(compiled-function (p) #<bytecode 0x1579cdd91755>)(pandoc-mode)
  mapc(#f(compiled-function (p) #<bytecode 0x1579cdd91755>) (auctex ess forge magit markdown-mode pandoc-mode use-package zerodark-theme))
  package-install-selected-packages()
  eval-buffer(#<buffer  *load*> nil "/home/philsf/.emacs.d/init.el" nil t)  ; Reading at buffer position 1605
  load-with-code-conversion("/home/philsf/.emacs.d/init.el" "/home/philsf/.emacs.d/init.el" t t)
  load("/home/philsf/.emacs.d/init" noerror nomessage)
  startup--load-user-init-file(#f(compiled-function () #<bytecode 0x1579cdb2fe41>) #f(compiled-function () #<bytecode 0x1579cdb2fefd>) t)
  command-line()
  normal-top-level()
5
  • The error message I get is similar to emacs.stackexchange.com/questions/50592, but I don't think it's the same issue.
    – philsf
    Oct 11 at 21:07
  • 1
    Turn on debug-on-error, try it again: assuming you get a backtrace, edit your question and add the backtrace.
    – NickD
    Oct 12 at 1:43
  • Thanks for the tip, @NickD. I added the info you requested.
    – philsf
    Oct 12 at 17:29
  • 1
    Maybe @tarsius might have some suggestions. If you comment out the forge stuff from your init.el, does emacs start up properly?
    – NickD
    Oct 12 at 18:19
  • 2
    Thank you so much @NickD. Based on your suggestion, I removed melpa-stable forge (currently 0.2.1), after which magit became fully funcional again. Also I successfully used melpa (currently 20211006.2025) to rebuild the database, and it works again. I can consistently reproduce the issue with 0.2.1, so I guess I should open a bug report. Thanks again.
    – philsf
    Oct 12 at 19:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.