Dependent plugin fails to rebuild Spring context after updating provider plugin in Jira 11.3.11

Hello,

We are experiencing unexpected plugin lifecycle behavior after upgrading from Jira Data Center 11.3.10 to 11.3.11.

We have:

  • One provider plugin that exports Java packages.
  • One dependent plugin that imports those packages.

Everything works when the plugins are installed in this order:

  1. Provider plugin
  2. Dependent plugin

When we upload a new version of the provider plugin, Jira automatically:

  1. Disables the dependent plugin.
  2. Replaces and re-enables the provider plugin.
  3. Attempts to re-enable the dependent plugin.

The dependency handling is visible in the logs:

To disable the provider plugin, we need to first disable all dependent enabled plugins.



Found mandatory, optional and dynamically dependent plugins to re-enable after plugin upgrade.

This restart behavior occurs in both Jira 11.3.10 and Jira 11.3.11. However, the result differs:

  • In Jira 11.3.10, the dependent plugin is automatically re-enabled successfully.
  • In Jira 11.3.11, the dependent plugin fails during automatic re-enablement.

During the failure, Jira can find the dependent plugin’s custom field classes, but a local Spring bean declared and implemented within the same dependent plugin is unavailable:

No qualifying bean of type 'ABCManager' available

Jira subsequently disables the dependent plugin.

If we manually upload the dependent plugin after the provider plugin is fully enabled, it starts successfully and everything works again.

Therefore, the issue appears to be specific to the automatic dependent-plugin re-enablement path in Jira 11.3.11. The same plugin can initialize successfully when uploaded manually after the provider plugin is active.

We intend to keep the existing dependency. Our goal is to ensure that the dependent plugin automatically restarts and reconstructs its Spring context successfully after the provider plugin is updated.

Could you please advise:

  1. Did Jira 11.3.11 introduce any changes to OSGi package refresh, dependent-plugin restart ordering, or Spring context initialization?
  2. Is the automatic disable and re-enable behavior expected when updating a plugin that exports packages used by another plugin?
  3. Why would manually uploading the dependent plugin succeed while Jira’s automatic re-enable process fails?
  4. Is there a supported way to ensure that the dependent plugin’s Spring context and local beans are fully initialized before its custom field modules become available?
  5. Are there any known lifecycle changes or issues between Jira 11.3.10 and Jira 11.3.11 that could explain this difference?

Thanks in advance,
Ibrahim