We pass `null` for the class name here:

https://github.com/elastic/elasticsearch/blob/f086dd18ddc705bf84a1ff99d35196ec2498fd52/server/src/main/java/org/elasticsearch/plugins/PluginDescriptor.java#L261

However the class name is mandatory for the transport protocol today:

https://github.com/elastic/elasticsearch/blob/f086dd18ddc705bf84a1ff99d35196ec2498fd52/server/src/main/java/org/elasticsearch/plugins/PluginDescriptor.java#L156

This prevents various APIs from working in a cluster with stable plugins installed.
server/src/test/java/org/elasticsearch/plugins/PluginsServiceTests.java
private NoPublicConstructorPlugin() {
            }
        }
        final Path home = createTempDir();
        final Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), home).build();
        final IllegalStateException e = expectThrows(
            IllegalStateException.class,
            () -> PluginsService.loadPlugin(NoPublicConstructorPlugin.class, settings, home)
        );
        assertThat(e, hasToString(containsString("no public constructor")));
    }
    public void testLoadPluginWithMultiplePublicConstructors() {
        class MultiplePublicConstructorsPlugin extends Plugin {
            @SuppressWarnings("unused")
            public MultiplePublicConstructorsPlugin() {
            }
            @SuppressWarnings("unused")
            public MultiplePublicConstructorsPlugin(final Settings settings) {
            }
        }
        final Path home = createTempDir();
        final Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), home).build();
        final IllegalStateException e = expectThrows(
            IllegalStateException.class,
            () -> PluginsService.loadPlugin(MultiplePublicConstructorsPlugin.class, settings, home)
        );
        assertThat(e, hasToString(containsString("no unique public constructor")));
    }
    public void testLoadPluginWithNoPublicConstructorOfCorrectSignature() {
        class TooManyParametersPlugin extends Plugin {