Skip to content

Instantly share code, notes, and snippets.

@sinewalker
Last active March 28, 2018 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sinewalker/37dfb0539dfa3fbc611797434a51818b to your computer and use it in GitHub Desktop.
Save sinewalker/37dfb0539dfa3fbc611797434a51818b to your computer and use it in GitHub Desktop.
Fixing most emacs/spacemacs "Symbol's function definition is void: some-package-function"

TL;DR: try recompiling everything. You can ask emacs to, or you can just force it to:

find ~/.emacs.d -name "*.elc" -delete

Then restart emacs.


The main culprits for this error are:

  • some symbol is being interpretted as a function when it shoudln't be (i.e. there is a syntax error)
  • some function is being called that does not exist, or has not been loaded by emacs

In the first case, check your own init files for syntax errors. Somtimes starting emacs with --debug-init helps, at least to narrow down which layer or init file might contain the mistake. Then you can search through your recent commits on those. When you search, try looking for the symbol beginning with an open paren:

(some-package-fuction


Very often what usually happens is that an emacs package is updated and the names of functions have changed. Breaking Rule A. This happens depressingly often, especially with Org Mode.

Anyway, though the calling packages might be updated, you usually won't get benefit of that until you force emacs to re-compile all your elisp. To do that, remove the byte-compiled files. This gets rid of them all:

find ~/.emacs.d -name "*.elc" -delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment