bug#81514: 32.0.50; Eglot messages progress reporter shows errors

Eli Zaretskii <[email protected]>
Newsgroups gmane.emacs.bugs
Message-ID <[email protected]>
> From: "Jacek Świerk" <[email protected]>
> Date: Wed, 29 Jul 2026 09:41:39 +0200
> 
> When Eglot is configured with `eglot-report-progress` set to `messages`, it
> reports an error while trying to use the progress reporter in a nontrivial
> project.
> 
> Reproduction using rust-analyzer:
> 1. Clone https://github.com/BurntSushi/ripgrep
> 2. Open ripgrep/crates/core/main.rs
> 3. M-: (setopt eglot-report-progress 'messages)
> 4. M-x toggle-debug-on-error
> 5. M-x eglot
> 
> Debugger entered--Lisp error: (wrong-type-argument sequencep 100)
>    progress-reporter-echo-area((7 . [1785304002.532535 nil nil "[eglot] 
> ripgrep rustAnalyzer/Building compile-time-deps: Building 
> compile-time-deps..." 1 0.2 nil nil]) 7 100)
>    progress-reporter-do-update((7 . [1785304002.532535 nil nil "[eglot] 
> ripgrep rustAnalyzer/Building compile-time-deps: Building 
> compile-time-deps..." 1 0.2 nil nil]) 100 nil)
>    eglot--reporter-update((7 . [1785304002.532535 nil nil "[eglot] 
> ripgrep rustAnalyzer/Building compile-time-deps: Building 
> compile-time-deps..." 1 0.2 nil nil]) 100 nil)
>    #f(compiled-function (arg1 arg2 arg3 arg4 &rest rest) #<bytecode 
> 0x1c7b74ccff3232d6>)(#<eglot-lsp-server 1008c31da7cc> 
> "rustAnalyzer/Building compile-time-deps" 100 nil)
>    #f(compiled-function (arg1 arg2 &rest rest) "Handle $/progress 
> notification identified by TOKEN from SERVER." #<bytecode 
> -0x35b89fe1a323862>)(#<eglot-lsp-server 1008c31da7cc> $/progress :token 
> "rustAnalyzer/Building compile-time-deps" :value (:kind "end"))
>    apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle $/progress 
> notification identified by TOKEN from SERVER." #<bytecode 
> -0x35b89fe1a323862>) #<eglot-lsp-server 1008c31da7cc> $/progress (:token 
> "rustAnalyzer/Building compile-time-deps" :value (:kind "end")))
>    eglot-handle-notification(#<eglot-lsp-server 1008c31da7cc> $/progress 
> :token "rustAnalyzer/Building compile-time-deps" :value (:kind "end"))
>    apply(eglot-handle-notification #<eglot-lsp-server 1008c31da7cc> 
> $/progress (:token "rustAnalyzer/Building compile-time-deps" :value 
> (:kind "end")))
>    #f(compiled-function (server method params) #<bytecode 
> 0x1f1068c682e838aa>)(#<eglot-lsp-server 1008c31da7cc> $/progress (:token 
> "rustAnalyzer/Building compile-time-deps" :value (:kind "end")))
>    jsonrpc-connection-receive(#<eglot-lsp-server 1008c31da7cc> (:jsonrpc 
> "2.0" :method "$/progress" :params (:token "rustAnalyzer/Building 
> compile-time-deps" :value (:kind "end"))))
>    #f(compiled-function (conn msg) #<bytecode 
> 0x1bafe9b6d4ce09dc>)(#<eglot-lsp-server 1008c31da7cc> (:jsonrpc "2.0" 
> :method "$/progress" :params (:token "rustAnalyzer/Building 
> compile-time-deps" :value (:kind "end"))))
>    apply(#f(compiled-function (conn msg) #<bytecode 0x1bafe9b6d4ce09dc>) 
> (#<eglot-lsp-server 1008c31da7cc> (:jsonrpc "2.0" :method "$/progress" 
> :params (:token "rustAnalyzer/Building compile-time-deps" :value (:kind 
> "end")))))
>    timer-event-handler([t 27241 37827 781121 nil #f(compiled-function 
> (conn msg) #<bytecode 0x1bafe9b6d4ce09dc>) (#<eglot-lsp-server 
> 1008c31da7cc> (:jsonrpc "2.0" :method "$/progress" :params (:token 
> "rustAnalyzer/Building compile-time-deps" :value (:kind "end")))) nil 
> 734000 nil])
> 
> This seems to be introduced by the following commit
> https://github.com/emacs-mirror/emacs/commit/b6849229003f214570acedfa7e2755051c0e4305
> and most likely affects Emacs 31 as well.

Thanks.

Stéphane, please look into fixing this.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.