eclipse / openvsx

An open-source registry for VS Code extensions
https://open-vsx.org/
Eclipse Public License 2.0
1.25k stars 137 forks source link

Unexplained "inactive and therefore not visible" error when uploading #755

Open KevinMGranger opened 1 year ago

KevinMGranger commented 1 year ago

We're using a script to mirror extensions from open-vsx.org to our internal registry. It compares what's already present there to what we're requesting, and only mirrors the extension if it's not present.

We sometimes see an error when uploading: `Extension $EXT_ID $VERSION is already published, but is currently inactive and therefore not visible."

We can't find:

  1. documentation on what inactive means
  2. how/why certain extensions wind up in that state, without us touching them
  3. how to rectify this (we're deleting extensions by accessing the database directly)

It seems that there's an admin API that we could use for number 3, but I can't find any docs on that either.

amvanbaren commented 1 year ago

Hi @KevinMGranger, so the main issue is that there's no documentation on what's going and what to do when you get this error?

For your particular scenario you might want to look into mirror mode: https://github.com/eclipse/openvsx/blob/master/server/src/dev/resources/application-mirror.yml. You can control which extensions to mirror through the include-extensions and exclude-extensions properties. The only thing to keep in mind is that mirror mode doesn't mirror file contents. It creates urls pointing to the open-vsx.org cloud storage instead. This might be a problem when your Open VSX instance is behind a proxy.

KevinMGranger commented 1 year ago

Mirror mode is interesting, thanks for the share! I'm not sure if that would work with our environment, but I can check.

We want to have more control over what versions are mirrored-- are we able to do that in that config?

But as for right now, understanding the active state and why that would change on its own is important.

amvanbaren commented 1 year ago

We want to have more control over what versions are mirrored-- are we able to do that in that config?

No, you can only include/exclude extensions by namespace and/or extension name.

amvanbaren commented 1 year ago

TODO

jdsatava127 commented 1 year ago

We are running into this same issue after upgrading to Docker image v0.11.1. When we try to publish a newer version of an extension we receive the message that it is currently inactive and therefore not visible. This is confirmed by searching in VS Code and we can only find the older version. How do we update the active/inactive state of an extension and version?

We are publishing the .vsix files using curl and the http://localhost:8080/api/-/publish endpoint

amvanbaren commented 1 year ago

Hi @jdsatava127, You can delete the extension in the admin dashboard and try to publish the extension again after that. If you're using cloud storage make sure to wait a while before publishing again, because cloud storage files are removed in the background.

ogiekako commented 1 year ago

I saw the same issue. I only see 0.17.3 on openvsx, while I have run the command to publish 0.17.4, and if I rerun the command

npx ovsx publish /tmp/pcJRRP/cros-ide-0.17.4.vsix --pre-release

I get

❌  Extension Google.cros-ide 0.17.4 is already published, but currently isn't active and therefore not visible.

What does active and visible mean, and is there any way to fix the issue?

pokey commented 1 year ago

This just started happening to us yesterday on multiple extensions. I haven't changed anything. Any idea what's going on? It's blocking our CI pipeline. See eg https://github.com/cursorless-dev/cursorless/actions/runs/5592044092/jobs/10223960230

Seems like this happens when we try to re-publish a version that hit https://github.com/eclipse/openvsx/issues/779

kineticsquid commented 1 year ago

See https://github.com/EclipseFdn/open-vsx.org/issues/2062.