7 Troubleshooting

If an error occurs while initializing or configuring a package, this will not stop your Emacs from loading. Instead, use-package captures the error and reports it in a special *Warnings* popup buffer, so that you can debug the situation in an otherwise functional Emacs.

If you are having trouble when starting Emacs, you can pass Emacs the ‘--debug-init’ command line flag. See Initial Options in GNU Emacs Manual. To get even more information when using that flag, add the following to your init file (these options are documented below):

(when init-file-debug
  (setq use-package-verbose t
        use-package-expand-minimally nil
        use-package-compute-statistics t
        debug-on-error t))

Since use-package is a macro, the first step when you need to dig deeper is usually to see what Emacs Lisp code your declaration expands to. You can either use the command M-x pp-macroexpand-last-sexp, or wrap the use-package declaration in macroexpand and evaluate it. It is a good idea to include their output in any bugs you file for use-package.