From d0a24ea03ebe45d342ad8ed15ebb436018c518e7 Mon Sep 17 00:00:00 2001 From: Andre Toerien Date: Thu, 12 Jun 2025 18:21:53 +0200 Subject: [PATCH] fix(lsp): _cancel_all_requests() tries to cancel completed requests #34105 Problem: The cancel function returned by `vim.lsp.buf_request` tries to cancel all the requests, including those that have already been completed, causing "Cannot find request with id ... whilst attempting to cancel" errors to be logged when it is called. Solution: Only cancel the requests that are present in `client.requests`. (cherry picked from commit a9b8a8dc6c1feaf5103699755086a393615602f2) --- runtime/lua/vim/lsp.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 46fa481109..e1f97c7787 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -1288,7 +1288,9 @@ function lsp.buf_request(bufnr, method, params, handler, on_unsupported) local function _cancel_all_requests() for client_id, request_id in pairs(client_request_ids) do local client = all_clients[client_id] - client:cancel_request(request_id) + if client.requests[request_id] then + client:cancel_request(request_id) + end end end