Skip to content

calling uninstall plugin endpoint without specifying a version leads to runtime error #193

@xsalefter

Description

@xsalefter

In plugin management API, we have docs to uninstall plugin without specifying a version. But if we're doing this, we got an error:

2026-03-31 01:00:25 [bus_ext_events-th] INFO  o.k.b.o.b.k.i.DefaultPluginManager - Starting uninstallation of plugin: pluginKey=<plugin-key>, version=null
2026-03-31 01:00:25 [bus_ext_events-th] INFO  o.k.b.o.b.k.i.DefaultPluginInstaller - Starting uninstallation of plugin: <plugin-key> version: null
2026-03-31 01:00:25 [bus_ext_events-th] ERROR o.k.b.o.b.k.i.DefaultPluginManager - Error uninstalling plugin: pluginKey=<plugin-key>, version=null, error=Cannot call #getPluginVersion() since PluginNamingResolver created without 'version'
java.lang.IllegalStateException: Cannot call #getPluginVersion() since PluginNamingResolver created without 'version'
	at org.killbill.commons.utils.Preconditions.checkState(Preconditions.java:44)
	at org.killbill.billing.osgi.bundles.kpm.impl.PluginNamingResolver.getPluginVersion(PluginNamingResolver.java:64)
	at org.killbill.billing.osgi.bundles.kpm.impl.DefaultPluginFileService.getPluginDirByPluginKeyAndVersion(DefaultPluginFileService.java:64)
	at org.killbill.billing.osgi.bundles.kpm.impl.DefaultPluginInstaller.uninstall(DefaultPluginInstaller.java:83)
	at org.killbill.billing.osgi.bundles.kpm.impl.DefaultPluginManager.uninstall(DefaultPluginManager.java:261)
	at org.killbill.billing.osgi.bundles.kpm.EventsListener.handleKillbillEvent(EventsListener.java:115)
....

The resolution is either:

1 - Support this

  • Determine the version "source of truth". Could be the plugin_identifiers.json, or just read the /plugins/<sub-dir> directly?
  • What we need to do if there's multiple versions plugin exists?

2 - Not support this

Changes the docs that the version parameter is required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions