If something goes wrong, the first thing we recommend doing is to
execute command M-x company-diag and thoroughly study its
This command outputs important details about the internal workings of
Company at the moment of the company-diag command execution,
including a responsible backend and a list of completion candidates
provided by it.
Based on the value of the ‘Used backend’ in the output of the
command M-x company-diag, these possible actions may follow:
If the used backend does not belong to the Company package, report the
issue to the corresponding third-party package maintainer(s).
- If the used backend is ‘company-capf’, then take a look at the
line starting with ‘Value of c-a-p-f:’. The issue could have
been caused by a function listed there. To identify to which package
it belongs, type M-x find-function RET <function-name> RET.
If the aforementioned steps didn’t help to find the cause of the
issue, then file a bug report to
the Company Issue Tracker, attaching the following information:
- Output of the M-x company-diag.
- The exact error message: you can find it in the *Messages*
- The steps to reproduce the behavior. Ideally, if you can, starting
with a bare Emacs session:
- The backtrace of the error, which you can get by running the command:
M-x toggle-debug-on-error before reproducing the error.