### CI Link

https://gradle-enterprise.elastic.co/s/ff35boj3dy3qo/tests/:qa:rolling-upgrade:v8.2.0%23oneThirdUpgradedTest/org.elasticsearch.upgrades.DesiredNodesUpgradeIT/testUpgradeDesiredNodes

### Repro line

`./gradlew ':qa:rolling-upgrade:v8.2.0#oneThirdUpgradedTest' -Dtests.class="org.elasticsearch.upgrades.DesiredNodesUpgradeIT" -Dtests.method="testUpgradeDesiredNodes" -Dtests.seed=E0D4B6781946820C -Dtests.bwc=true -Dtests.locale=it-IT -Dtests.timezone=America/Sao_Paulo -Druntime.java=17`

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

https://gradle-enterprise.elastic.co/scans/tests?search.timeZoneId=Europe/Berlin&tests.container=org.elasticsearch.upgrades.DesiredNodesUpgradeIT&tests.test=testUpgradeDesiredNodes#

### Failure excerpt

```
junit.framework.AssertionFailedError: Expected exception ResponseException but no exception was thrown	
	at __randomizedtesting.SeedInfo.seed([E0D4B6781946820C:9680725C48C340A9]:0)	
	at org.apache.lucene.tests.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2854)	
	at org.apache.lucene.tests.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2840)	
	at org.elasticsearch.upgrades.DesiredNodesUpgradeIT.assertDesiredNodesWithFloatProcessorsAreRejectedInOlderVersions(DesiredNodesUpgradeIT.java:117)	
	at org.elasticsearch.upgrades.DesiredNodesUpgradeIT.testUpgradeDesiredNodes(DesiredNodesUpgradeIT.java:51)
```
qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/DesiredNodesUpgradeIT.java
request.setJsonEntity(Strings.toString(builder));
            final var response = client().performRequest(request);
            final var statusCode = response.getStatusLine().getStatusCode();
            assertThat(statusCode, equalTo(200));
        }
    }
    private List<String> getNodeNames() throws Exception {
        final var request = new Request("GET", "/_nodes");
        final var response = client().performRequest(request);
        Map<String, Object> responseMap = responseAsMap(response);
        Map<String, Map<String, Object>> nodes = extractValue(responseMap, "nodes");
        final List<String> nodeNames = new ArrayList<>();
        for (Map.Entry<String, Map<String, Object>> nodeInfoEntry : nodes.entrySet()) {
            final String nodeName = extractValue(nodeInfoEntry.getValue(), "name");
            nodeNames.add(nodeName);
        }
        return nodeNames;
    }
    private double randomDoubleProcessorCount() {
        return randomDoubleBetween(0.5, 512.1234, true);
    }
    private float randomFloatProcessorCount() {
        return randomIntBetween(1, 512) + randomFloat();
    }
    @SuppressWarnings("unchecked")
    private static <T> T extractValue(Map<String, Object> map, String path) {
        return (T) XContentMapValues.extractValue(path, map);
    }
}