Skip to content

[BUG] Disabled marketplace plugins are reloaded after refresh #409

Closed

Description

@alexl83

Summary

Disabling an installed marketplace plugin updates only the current browser state. The action is not persisted through the existing marketplace disable endpoint, and the bootstrap load route returns installed rows regardless of their enabled flag.

After a reload, a plugin that the operator disabled can therefore be loaded again. With an incompatible package such as the ISS plugin, this recreates the same startup error on every browser session and leaves no reliable Disabled section from which to restore or manage the package.

Reproduction

  1. Install a marketplace plugin in the local edition.
  2. Disable it from Data Sources / Plugins.
  3. Reload the application.
  4. Observe that the installed record is returned by the bootstrap load route and the plugin is loaded again.
  5. If the plugin fails during import, observe that the user cannot manage it reliably from the normal UI.

Expected behavior

  • Enable and disable actions should update the installed plugin record through the server API.
  • Bootstrap should load only records whose enabled flag is true.
  • Disabled plugins should remain installed and manageable, but must not be imported until re-enabled.

Cause

PluginsTab changes the client store and plugin manager but does not call the marketplace enable/disable routes. Separately, GET /api/marketplace/load calls installedPlugin.findMany() without filtering by enabled state.

Tested solution

Two commits in the public fork implement the fix:

The first commit also exposes installed plugin state through the marketplace status response so the management UI can represent the persisted state.

Validation

Tested on the self-hosted local edition. Disabled plugins remain disabled after refresh, incompatible disabled packages are not imported during bootstrap, and they can subsequently be re-enabled without deleting their database rows.

Scope

This is independent of any particular plugin. ISS exposed the problem, but the persistence and bootstrap behavior affects every marketplace plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingrepo:appBelongs to the main worldwideview application

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions