This usage of the _message as a completion function is invalid, and will result in an error if invoked by _arguments when the user has a format style set for completion messages. We can just drop this message, since it is not necessary. Before: $ zstyle ':completion:*:messages' format '%d' $ bluetoothctl connect <TAB> _message:zformat:42: invalid argument: -J After: $ zstyle ':completion:*:messages' format '%d' $ bluetoothctl connect <TAB> 31:41:59:26:53:59 -- Bose QuietComfort 35 11:22:33:44:55:66 -- Pixel 5 --- Included an example of the erroneous output and style setting completion/zsh/_bluetoothctl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/completion/zsh/_bluetoothctl b/completion/zsh/_bluetoothctl index bf35e503e..610ca2b8d 100644 --- a/completion/zsh/_bluetoothctl +++ b/completion/zsh/_bluetoothctl @@ -68,8 +68,7 @@ _bluetoothctl() { '(info)'{-m,--monitor}'[Enable monitor output]' \ + 'command' \ '(info):command:->command' \ - '(info):: :->argument' \ - ': :_message "no more arguments"' + '(info):: :->argument' if [[ $state == "command" ]]; then _describe -t commands 'command' all_commands -- 2.37.2