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/main/java/org/elasticsearch/TransportVersions.java
public static final TransportVersion V_8_500_048 = def(8_500_048);
    public static final TransportVersion V_8_500_049 = def(8_500_049);
    public static final TransportVersion V_8_500_050 = def(8_500_050);
    public static final TransportVersion V_8_500_051 = def(8_500_051);
    public static final TransportVersion V_8_500_052 = def(8_500_052);
    public static final TransportVersion V_8_500_053 = def(8_500_053);
    public static final TransportVersion V_8_500_054 = def(8_500_054);
    public static final TransportVersion V_8_500_055 = def(8_500_055);
    public static final TransportVersion V_8_500_056 = def(8_500_056);
    public static final TransportVersion V_8_500_057 = def(8_500_057);
    public static final TransportVersion V_8_500_058 = def(8_500_058);
    public static final TransportVersion V_8_500_059 = def(8_500_059);
    public static final TransportVersion V_8_500_060 = def(8_500_060);
    public static final TransportVersion V_8_500_061 = def(8_500_061);
    public static final TransportVersion V_8_500_062 = def(8_500_062);
    public static final TransportVersion V_8_500_063 = def(8_500_063);
    public static final TransportVersion V_8_500_064 = def(8_500_064);
    public static final TransportVersion V_8_500_065 = def(8_500_065);
    public static final TransportVersion V_8_500_066 = def(8_500_066);
    public static final TransportVersion SEARCH_RESP_SKIP_UNAVAILABLE_ADDED = def(8_500_067);
    public static final TransportVersion ML_TRAINED_MODEL_FINISH_PENDING_WORK_ADDED = def(8_500_068);
    public static final TransportVersion SEARCH_APP_INDICES_REMOVED = def(8_500_069);
    public static final TransportVersion GENERIC_NAMED_WRITABLE_ADDED = def(8_500_070);
    public static final TransportVersion PINNED_QUERY_OPTIONAL_INDEX = def(8_500_071);
    public static final TransportVersion SHARD_SIZE_PRIMARY_TERM_GEN_ADDED = def(8_500_072);
    public static final TransportVersion COMPAT_VERSIONS_MAPPING_VERSION_ADDED = def(8_500_073);
    public static final TransportVersion V_8_500_074 = def(8_500_074);
    public static final TransportVersion NODE_INFO_INDEX_VERSION_ADDED = def(8_500_075);
    public static final TransportVersion FIRST_NEW_ID_LAYOUT = def(8_501_00_0);
    public static final TransportVersion COMMIT_PRIMARY_TERM_GENERATION = def(8_501_00_1);