VSCode's "Check for Extensions Update" does not work

On NixOS, with homemanager or with a project-specific version of VSCode, the feature “Check for Extensions Update” always indicates “All extension are up to date.” even when this is not the case.

Do you also have the same problem? Do you know how to fix it?

As a nixpkgs maintainer of several VSCode extensions, I would like this feature to work to quickly identify the extensions that are outdated.

How does VSCode “Check for Extensions Update” behave on your side? I would like to know if the problem is only on my side.

Thank you for your answers

  • Works as expected
  • Does not work

0 voters

What exactly do you mean by “project specific”? For me VScode just updates all the plugins automatically.

Are you perhaps talking about a declaratively managed VScode? In that case (by my understanding) the “source” of an extension is left empty or set tp “locally installed” or whatever it is called exactly. So VScode will never consider it out dated, as it does not have a source to ask for a newer version available.

Yes, in both cases I use declaratively managed VScode. Here is an example of one of my “project specific” VSCode:

vscodeWithExtension = vscode-with-extensions.override {
  vscodeExtensions = with vscode-extensions; [

I use this for the development environment of the project so that every developer in the team has the same setup.

So, what you are saying is that I cannot benefit from the feature because I use a declaratively managed VScode. Is that right?

This is at least my understanding.

It’s … a little more complex than that. There was a time, for a few months earlier this year, when my declaratively-managed VScode did tell me about outdated extensions. I paid attention to the output.

  • Some were ones I had added directly (via pkgs.vscode-utils.extensionsFromVscodeMarketplace) and I had to update them.

  • Some were ones from nixpkgs, and I sent a PR to update those.

Then it stopped doing that, just as mysteriously again.

And now there’s nothing that makes me remember to run the script and manually check which are out of date (because that script just shows the current version, regardless of whether it’s the same as what’s installed).

I’m not sure how intentional either change was, nor what is the right behaviour for the general user case, but it was handy to know.

So I did not dream, I also noticed it myself. But I was too busy at the time to pay closer attention.