From 2da37d48b56698af025293e18a6b3843702d6538 Mon Sep 17 00:00:00 2001 From: hellozzm Date: Fri, 3 Apr 2026 09:03:37 +0800 Subject: [PATCH] fix: return MethodNotFound error for unrecognized LSP requests When receiving an unsupported LSP method, the server now returns a proper MethodNotFound (-32601) error response instead of silently dropping the request. This prevents well-behaved clients from hanging indefinitely waiting for a response. --- lib/ruby_lsp/server.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/ruby_lsp/server.rb b/lib/ruby_lsp/server.rb index 170c755da..d766e78a6 100644 --- a/lib/ruby_lsp/server.rb +++ b/lib/ruby_lsp/server.rb @@ -120,6 +120,14 @@ def process_message(message) @global_state.synchronize { @cancelled_requests << message[:params][:id] } when nil process_response(message) if message[:result] + else + if message[:id] + send_message(Error.new( + id: message[:id], + code: Constant::ErrorCodes::METHOD_NOT_FOUND, + message: "Method not found: #{message[:method]}", + )) + end end rescue DelegateRequestError send_message(Error.new(id: message[:id], code: DelegateRequestError::CODE, message: "DELEGATE_REQUEST"))