I recently started using Org mode for configuring Emacs and I really like it. However, I did run into an issue where, for some reason, org-babel-load-file didn't seem to update the tangled version of the file.

I thought perhaps it was an issue with caching at first, because if I manually tangled the file, everything would be just as I expected. However, if I started another instance of Emacs, it would re-evaluate the org-babel-load-file function, and I would end up with the wrong version of the file again.

I couldn't quite understand what was going on, but found the answer in a stack overflow post that I have sadly lost the link to: In Org mode, the official code for Emacs Lisp is emacs-lisp, but for code blocks, it also accepts elisp. From what I understand, elisp is set up as an alias for emacs-lisp. This seems to apply to manual tangling too, but not to org-babel-load-file.

And sure enough, I'd started using elisp instead of emacs-lisp partway through my config and those blocks wouldn't get tangled by org-babel-load-file. Going through and updating the blocks to use emacs-lisp instead of elisp was enough to get everything working again.

While the fix turned out to be simple, it was hard to find. So I'll leave this here, hoping it saves someone some time and effort in the future.

Remember: use #+begin_src emacs-lisp and not #+begin_src elisp.

Thomas Heartman is a developer, writer, speaker, and one of those odd people who enjoy lifting heavy things and putting them back down again. Preferably with others. Doing his best to gain and share as much knowledge as possible.