It seems that eglot used to send an empty object as the params but it got replaced by null to appease gopls. https://github.com/joaotavora/eglot/commit/4f6e152e1c5efc39a888f747ecca313a58f4375e The fix would be replacing the call (jsonrpc-request server :shutdown nil :timeout (or timeout 1.5)) with (jsonrpc-request server :shutdown eglot--{} :timeout (or timeout 1.5)) -- "I object to doing things that computers can do." — Olin Shivers