diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index 93a6d00e99a3c5e4be7e3ca8f4650b3477ce9e5d..478b65016857f57f9e6e4415626d13b1743c8334 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -891,8 +891,13 @@ impl LanguageServer { executor .spawn(async move { let response = match result { - Ok(response) => serde_json::from_str(&response) - .context("failed to deserialize response"), + Ok(response) => match serde_json::from_str(&response) { + Ok(deserialized) => Ok(deserialized), + Err(error) => { + log::error!("failed to deserialize response from language server: {}. Response from language server: {:?}", error, response); + Err(error).context("failed to deserialize response") + } + } Err(error) => Err(anyhow!("{}", error.message)), }; _ = tx.send(response);