2025.3 version and collaborationTools module

Hi there,

In our plugin we depend on com.intellij.collaboration.auth.services.OAuthServiceBase which used to be a part of intellij.platform.collaborationTools so we had the following in the plugin.xml

`

Unfortunately, our plugin fails with in 2025.3 EAP (253.25908.13):

Caused by: java.lang.ClassNotFoundException: com.intellij.collaboration.auth.services.OAuthServiceBase

I see ContentModuleDescriptor(id=intellij.platform.collaborationTools) in PluginClassLoader

It seems 2025.3 introduced new modules intellij.platform.collaborationTools.auth and intellij.platform.collaborationTools.auth.base which are not getting loaded transitively for intellij.platform.collaborationTools. Is it bug?

How can we support 2025.3 and previous versions with a single plugin.xml? Adding dependency on the new module will make the plugin incompatible with previous versions. There are also no way to mark module dependency as optional.

Here is a project that reproduces the issue. Based of the official template.

AFAIK, with a traditional (v1) plugin descriptor you only need a build dependency on the new modules but not a runtime dependency. A v1 descriptor can only declare dependencies on plugins, not modules. And to my knowledge all modules of the IDE, which are not part of a plugin, are always available to a v1 plugin by default.
(I had to make a similar change.)

With v2 that’s different, but unless you know that you’re using a v2 descriptor you won’t have one :wink:

A JetBrains developer will have to confirm this.

Running with 2025.3, the only exception I received was this:
#c.i.i.p.PluginManager - Cannot find service com.github.fkorotkov.intellijpluginbugreproduction.auth.MyOAuthService.

You didn’t register your auth service. If you add the annotation there’s no exception anymore.

@Service(Service.Level.APP)
class MyOAuthService : OAuthServiceBase<MyCredentials>() {
...
}

Additionally, your plugin.xml is not correct. The devkit plugin has a warning on the following block. You need to remove it, because <dependencies> is a v2-descriptor element. Only <depends> with plugins is valid in the regular plugin.xml.

    <dependencies>
        <!-- for OAuth support -->
        <module name="intellij.platform.collaborationTools"/>
    </dependencies>

Building with 2025.3 requires this additional build-time module:

platformBundledModules = intellij.platform.collaborationTools, intellij.platform.collaborationTools.auth.base
1 Like

Thank you so much for taking a look and sharing these findings with explanations, it’s super helpful to learn from.