Mason does not display installed packages after restarting
I've searched open issues for similar requests
- [X] Yes
I've recently downloaded the latest plugin version of mason.nvim
- [X] Yes
Problem description
Installing packages works OK and after installing any, they are correctly displayed in mason as installed, but after a restart, mason does not seem to find them anymore - it just says "Installed (0)".
I first realized this with my default neovim version as installed by archlinux (0.9.4-2) and then installed the neovim-git version (v0.10.0-dev-1812+g6d698c86d0), but to no avail. The same mason config worked fine on my mac.
Then I tried with NvChad with a fresh install and it also installed LSP Servers fine, but after restarting, did not display them. Then running :MasonInstallAll (re-)installed them, but after a restart, they were not displayed.
Funnily enough, they are actually installed. The files are where they are supposed to be and :LspInfo shows that they are attached. so it seems just to be a matter of mason not finding/displaying installed packages.
Expected behavior
Installed packages either within mason or by having them provided in a list in a config file should be displayed when opening mason after a restart of nvim
Affected packages
All
Mason output
directly after having installed a package:
mason.nvim (search mode, press <Esc> to clear)
press g? for help
https://github.com/williamboman/mason.nvim
(1) All (2) LSP (3) DAP (4) Linter (5) Formatter
Language Filter: press <C-f> to apply filter
Installed
pyright (keywords: python)
Available
actionlint (keywords: yaml)
ada-language-server (keywords: ada)
alex (keywords: markdown)
angular-language-server (keywords: angular)
ansible-language-server (keywords: ansible)
then after a restart
mason.nvim
press g? for help
https://github.com/williamboman/mason.nvim
(1) All (2) LSP (3) DAP (4) Linter (5) Formatter
Language Filter: press <C-f> to apply filter
Installed
No packages.
Available
actionlint
ada-language-server
alex
angular-language-server
ansible-language-server
ansible-lint
antlers-language-server
apex-language-server
[...]
Installation log
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
args = { "-H", "Accept: application/vnd.mason-registry.v1+json; q=1.0, application/json; q=0.8", "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26753
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26753 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/registry.json.zip"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
args = { "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "-o", "/home/svh/.local/share/NvChad/mason/registries/github/mason-org/mason-registry/registry.json.zip", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/registry.json.zip" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26755
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26755 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/registries/github/mason-org/mason-registry/registry.json.zip
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/checksums.txt"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
args = { "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/checksums.txt" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26758
[DEBUG Di 12 Dez 2023 10:41:40 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26758 exited with exit_code=0, signal=0
[INFO Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=ansible-lint) {}
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:58: Attempting to lock package Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:70: Wrote lockfile Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/svh/.local/share/NvChad/mason/staging/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:148: Compiling installer. ansible-lint {}
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:70: pypi: init
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...had/lazy/mason.nvim/lua/mason-core/installer/context.lua:229: Promoting cwd "/home/svh/.local/share/NvChad/mason/staging/ansible-lint" to "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...Chad/lazy/mason.nvim/lua/mason-core/installer/linker.lua:42: Unlinking Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/bin/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:47: fs: rmrf /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:65: fs: mkdir /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:84: fs: rename /home/svh/.local/share/NvChad/mason/staging/ansible-lint /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="python3", spawn_opts={
args = { "-m", "venv", "venv" },
cwd = "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:45 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26768
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26768 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:48 CET] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:102: pypi: install "ansible-lint" "6.22.1"
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="/home/svh/.local/share/NvChad/mason/packages/ansible-lint/venv/bin/python", spawn_opts={
args = { "-m", "pip", "--disable-pip-version-check", "install", "-U", "ansible-lint==6.22.1" },
cwd = "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26784
[DEBUG Di 12 Dez 2023 10:41:57 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26784 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/link.lua:139: Registering bin links Package(name=ansible-lint) {
["ansible-lint"] = "pypi:ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/link.lua:166: Expanded bin link "ansible-lint" -> "venv/bin/ansible-lint"
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...had/lazy/mason.nvim/lua/mason-core/installer/context.lua:226: cwd "/home/svh/.local/share/NvChad/mason/packages/ansible-lint" is already promoted (at "/home/svh/.local/share/NvChad/mason/packages/ansible-lint")
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...Chad/lazy/mason.nvim/lua/mason-core/installer/linker.lua:137: Linking Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:39: Building receipt for Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/staging/ansible-lint.lock
[INFO Di 12 Dez 2023 10:41:57 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=ansible-lint)
Neovim version (>= 0.7)
NVIM v0.10.0-dev-1812+g6d698c86d0 Build type: RelWithDebInfo LuaJIT 2.1.1700008891
Operating system/version
Linux fnord 6.6.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 04 Dec 2023 00:29:19 +0000 x86_64 GNU/Linux
Healthcheck
mason: require("mason.health").check()
mason.nvim ~
- OK mason.nvim version v1.8.3
- OK PATH: skip
- OK Providers:
mason.providers.registry-api
mason.providers.client
- OK neovim version >= 0.7.0
mason.nvim [Registries] ~
- OK Registry `github.com/mason-org/mason-registry version: 2023-12-12-idle-steven` is installed.
mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send`
- OK wget: `GNU Wget 1.21.4 übersetzt unter linux-gnu.`
- OK curl: `curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0 OpenSSL/3.1.4 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.4) libssh2/1.11.0 nghttp2/1.58.0`
- OK gzip: `gzip 1.13`
- OK tar: `tar (GNU tar) 1.35`
- OK bash: `GNU bash, Version 5.2.21(1)-release (x86_64-pc-linux-gnu)`
- OK sh: `Ok`
mason.nvim [Languages] ~
- WARNING Go: not available
- ADVICE:
- spawn: go failed with exit code - and signal -. go is not executable
- WARNING Composer: not available
- ADVICE:
- spawn: composer failed with exit code - and signal -. composer is not executable
- WARNING PHP: not available
- ADVICE:
- spawn: php failed with exit code - and signal -. php is not executable
- WARNING cargo: not available
- ADVICE:
- spawn: cargo failed with exit code - and signal -. cargo is not executable
- WARNING luarocks: not available
- ADVICE:
- spawn: luarocks failed with exit code - and signal -. luarocks is not executable
- OK Ruby: `ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]`
- OK node: `v21.4.0`
- WARNING julia: not available
- ADVICE:
- spawn: julia failed with exit code - and signal -. julia is not executable
- OK python: `Python 3.11.6`
- OK java: `Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true`
- OK RubyGem: `3.3.25`
- OK javac: `javac 21`
- OK pip: `pip 23.3.1 from /usr/lib/python3.11/site-packages/pip (python 3.11)`
- OK npm: `10.2.5`
- OK python venv: `Ok`
mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 0. Remaining: 60. Limit: 60. Reset: Di 12 Dez 2023 11:44:42 CET.
Install and authenticate via gh-cli to increase rate limit.
Screenshots
No response
when restarting nvim, mason reinstalls all packages each time, "fails" (not really, but says so), then does not display them. It seems it does not realize that things are installed already and keeps trying again at each restart of nvim
A bit more information:
I re-tested with the following minimal config:
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"neovim/nvim-lspconfig",
})
require("mason").setup()
require("mason-lspconfig").setup()
then installed pyright and black and - while nvim was still running, checked the files (nvim_clean being the NVIM_APPNAME), then restarted nvim:
cd .local/share/nvim_clean/mason/bin
ls -la
insgesamt 0
drwxr-xr-x 2 svh svh 57 13. Dez 16:42 .
drwxr-xr-x 7 svh svh 74 13. Dez 16:42 ..
lrwxrwxrwx 1 svh svh 69 13. Dez 16:42 black -> /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
lrwxrwxrwx 1 svh svh 82 13. Dez 16:42 pyright -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright
lrwxrwxrwx 1 svh svh 93 13. Dez 16:42 pyright-langserver -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright-langserver
ls -l /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
-rwxr-xr-x 1 svh svh 274 13. Dez 16:42 /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
echo "restarted nvim"
restarted nvim
ls -la
insgesamt 0
drwxr-xr-x 2 svh svh 57 13. Dez 16:42 .
drwxr-xr-x 7 svh svh 74 13. Dez 16:42 ..
lrwxrwxrwx 1 svh svh 69 13. Dez 16:42 black -> /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
lrwxrwxrwx 1 svh svh 82 13. Dez 16:42 pyright -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright
lrwxrwxrwx 1 svh svh 93 13. Dez 16:42 pyright-langserver -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright-langserver
ls -l /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
-rwxr-xr-x 1 svh svh 274 13. Dez 16:42 /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
As you can see, files are there all the time, but they are not displayed by mason as installed. And the OS at least does not seem to do something here
Adding @SCljh
I have the same problem as you, every time I reopen nvim, clangd need to be re-download. I recently noticed some anomalies in the log of Mason: though clangd successfully downloads (with the output stating Installation succeeded for Package(name=clangd)) and is available in nvim, there are a few error messages in the MasonLog. I don't know if these errors will affect the package installation process, such as this errors might result in some metadata not being recorded. Here are the detailed logs:
3545 [INFO Thu 25 Jan 2024 07:30:07 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=lua-language-server) {}
3546 [INFO Thu 25 Jan 2024 07:30:07 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
3547 [INFO Thu 25 Jan 2024 07:30:10 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=lua-language-server)
3548 [INFO Thu 25 Jan 2024 07:30:33 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=clangd)
3549 [ERROR Thu 25 Jan 2024 07:30:42 PM CST] ...acker/start/mason.nvim/lua/mason-core/providers/init.lua:75: Provider "github" "get_latest_release" failed: spawn: wget failed with exit code 5 and signal 0.-
3550 [INFO Thu 25 Jan 2024 07:30:44 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
3551 [INFO Thu 25 Jan 2024 07:31:01 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=clangd)
similar issue, but on the opposite side. I've uninstalled pyright lsp from :Mason config, but every time I open a python file, it keeps re-installing pyright, although I don't want it. After I run :LspUininstall pyright and :LspRestart, pyright is disabled.
I've tried adding this config to my lazyvim plugins, but it does not seem to help:
config = function()
require("mason").setup()
require("mason-lspconfig").setup({ automatic_installation = {
exclude = { "pyright" },
} })
end,