Vertico remote engine sometimes breaks file completions in minibuffer

What happened?

Sometimes, after working in Emacs for a while, file completions start behaving in a weird fashion. If the input does not reference any existing file (e.g. when I’m trying to open a new file, or just misspell existing one), an error is displayed, and minibuffer completion system stops working – I cannot select candidates, candidate list is not refreshed, etc.

This is the errors I see in Messages:

Error in post-command-hook (vertico--exhibit): (void-function nil)
Error in pre-command-hook (vertico--prepare): (void-function nil)

What did you expect to happen?

I expect the completions system to behave normally, e.g. allowing me to select candidates etc.

Steps to reproduce

  1. Use vertico engine
  2. Work with Emacs for a while (?)
  3. Try to open non-existing file

System information

Loading data dump...

Additional info

After several unsuccessful attempts to debug this, I finally found out the what causes this. For some reason, the completion-styles-alist misses the +vertico-basic-remote entry (which was there initially), but minibuffer-completion nevertheless tries to use that style anyway.

Adding the whole entry back to the completion-style-alist fixes the issue.

I’m very confused about how to reproduce that in a stable way, so if anybody can give some hint, it would be great.

This topic was automatically closed after 90 days. New replies are no longer allowed.