1

When following a suggestion for solving another problem, I'm doing M-x package-list-packages. However, that gives me the error message Invalid version list `(4 5 -4 414)'. What does this mean, and what can I do about it?

If I do M-x toggle-debug-on-error before, doing M-x package-list-packages additionally gives me the backtrace

Debugger entered--Lisp error: (error "Invalid version list `(4 5 -4 414)'")
  signal(error ("Invalid version list `(4 5 -4 414)'"))
  error("Invalid version list `%s'" (4 5 -4 414))
  package-version-join((4 5 -4 414))
  package-menu--print-info(((merlin 4 5 -4 414) "available" "Mode for Merlin, an assistant for OCaml"))
  mapcar(package-menu--print-info (((0blayout 1 0 2) "available" "Layout grouping with ease") ((2bit 1 0) "available" "Library for reading data from 2bit files") ((a 1 0 0) "available" "Associative data structure functions") ((aa-edit-mode 0 0 2) "available" "Major mode for editing AA(S_JIS Art) and .mlt file") ((aas 1 1) "available" "Snippet expansions mid-typing") ((abc-mode 20140225 944) "available" "Major mode for editing abc music files") ((abridge-diff 0 1) "available" "No description available.") ((abs-mode 1 5) "available" "Major mode for the modeling language Abs") ((abyss-theme 0 7) "available" "A dark theme with contrasting colours.") ((ac-alchemist 0 1) "available" "auto-complete source for alchemist") ((ac-capf 0 1) "available" "auto-complete source with completion-at-point") ((ac-cider 0 2 3) "available" "Clojure auto-complete sources using CIDER") ((ac-clang 2 1 3) "available" "Auto Completion source by libclang for GNU Emacs") ((ac-dcd 0 6) "available" "Auto Completion source for dcd for GNU Emacs") ((ac-emacs-eclim 0 4) "available" "auto-complete source for eclim") ((ac-emoji 0 2) "available" "auto-complete source of Emoji") ((ac-etags 0 6) "available" "etags/ctags completion source for auto-complete") ((ac-geiser 0 1) "available" "Auto-complete backend for geiser") ((ac-haskell-process 0 7) "available" "Haskell auto-complete source which uses the current haskell process") ((ac-helm 2 1) "available" "Auto Complete with Helm") ((ac-html 0 31) "available" "auto complete source for html tags and attributes") ((ac-html-bootstrap 0 9 3) "available" "auto complete bootstrap3/fontawesome classes for `ac-html' and `company-web'") ((ac-html-csswatcher 0 1 7) "available" "css/less class/id completion with `ac-html' or `company-web'") ((ac-inf-ruby 0 4) "available" "Enable auto-complete in inf-ruby sessions") ((ac-ispell 0 7) "available" "ispell completion source for auto-complete") ((ac-mozc 0 0 4) "available" "auto-complete sources for Japanese input using Mozc") ((ac-octave 0 7) "available" "An auto-complete source for Octave") ((ac-php 2 4 2) "available" "Auto Completion source for PHP.") ((ac-php-core 2 4 2) "available" "The core library of the ac-php.") ((ac-racer 0 2) "available" "auto-complete source of racer") ((ac-rtags 3 23) "available" "auto-complete back-end for RTags") ((ac-slime 0 8) "available" "An auto-complete source using slime completions") ((ace-flyspell 0 1 3) "available" "Jump to and correct spelling errors using `ace-jump-mode' and flyspell") ((ace-isearch 1 0 1) "available" "A seamless bridge between isearch, ace-jump-mode, avy, helm-swoop and swiper") ((ace-jump-buffer 0 4 1) "available" "fast buffer switching extension to `avy'") ((ace-jump-helm-line 0 5 0) "available" "Ace-jump to a candidate in helm window") ((ace-jump-mode 2 0) "available" "a quick cursor location minor mode for emacs") ((ace-jump-zap 0 1 2) "available" "Character zapping, `ace-jump-mode` style") ((ace-link 0 5 0) "available" "Quickly follow links") ((ace-pinyin 0 2 5) "available" "Jump to Chinese characters using ace-jump-mode or avy") ((ace-popup-menu 0 2 1) "available" "Replace GUI popup menu with something more efficient") ((ace-window 0 10 0) "available" "Quickly switch windows.") ((acme-theme 1 0 0) "available" "A color theme for Emacs based on Acme & Sam from Plan 9") ((actionscript-mode 7 2 2) "available" "A simple mode for editing Actionscript 3 files") ((activity-watch-mode 1 4 0) "available" "Automatic time tracking extension.") ((adafruit-wisdom 0 3 0) "available" "Get/display adafruit.com quotes") ((add-hooks 3 1 1) "available" "Functions for setting multiple hooks") ((add-node-modules-path 1 3 1) "available" "Add node_modules to your exec-path") ((addressbook-bookmark 1 0) "available" "An address book based on Standard Emacs bookmarks.") ((ado-mode 16 1 4) "available" "Major mode for editing Stata-related files") ...))
  package-menu--generate(nil t)
  package-list-packages(nil)
  call-interactively(package-list-packages record nil)
  command-execute(package-list-packages record)
  execute-extended-command(nil "package-list-packages")
  call-interactively(execute-extended-command nil nil)

1 Answer 1

0

The stack trace indicates that it was processing the list of available packages and found one that is broken. I don’t get the same error when I list the packages, so perhaps the data was corrected already. Try running package-refresh-contents to download the package list again; if they’ve fixed it then the error will go away.

Also, use report-emacs-bug to make a bug report about this. Invalid metadata on one package should not cause it to be incapable of listing, installing, or uninstalling other packages. The code should catch these types of errors and handle them more gracefully.

8
  • Running package-refresh-contents didn't help; I'm still getting the same error. Commented Jun 14, 2022 at 13:42
  • If I use the report-emacs-bug function to report a bug, will my email address become publicly visible? Commented Jun 14, 2022 at 13:43
  • report-emacs-bug sends an email to the emacs-bug mailing list: lists.gnu.org/archive/html/bug-gnu-emacs
    – db48x
    Commented Jun 14, 2022 at 13:48
  • Ok, so yes. Then I think I prefer not to use that function :) I would love to contribute but not if that means that bots can collect my email address from the web and start to spam me. Commented Jun 14, 2022 at 14:44
  • 1
    Sometimes; depends on who is quoting. Use a throwaway or a plus–address so that you can block the spam you get, if you get any.
    – db48x
    Commented Jun 15, 2022 at 8:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.