This, along with `testAllTypesWithRequestToUpgradedNodes` has started failing after the version bump to 8.5.0 so there's some kind of BWC issue here when run against a mixed cluster with an 8.4.0 node.

**Build scan:**
https://gradle-enterprise.elastic.co/s/svuycrdmckkow/tests/:x-pack:plugin:sql:qa:mixed-node:v8.4.0%23mixedClusterTest/org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT/testAllTypesWithRequestToOldNodes

**Reproduction line:**
`./gradlew ':x-pack:plugin:sql:qa:mixed-node:v8.4.0#mixedClusterTest' -Dtests.class="org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT" -Dtests.method="testAllTypesWithRequestToOldNodes" -Dtests.seed=4F6EF0E5DF57FA84 -Dtests.bwc=true -Dtests.locale=uk -Dtests.timezone=America/Argentina/San_Juan -Druntime.java=17`

**Applicable branches:**
main

**Reproduces locally?:**
Yes

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT&tests.test=testAllTypesWithRequestToOldNodes

**Failure excerpt:**
```
java.lang.AssertionError: Response does not match:
                       columns: 
                               0: 
                              name: same [interval_year]
                              type: same [interval_year]
                               1: 
                              name: same [interval_minute]
                              type: same [interval_minute]
                               2: 
                              name: same [long_field]
                              type: same [long]
                               3: 
                              name: same [integer_field]
                              type: same [integer]
                               4: 
                              name: same [short_field]
                              type: same [short]
                               5: 
                              name: same [byte_field]
                              type: same [byte]
                               6: 
                              name: same [double_field]
                              type: same [double]
                               7: 
                              name: same [scaled_float_field]
                              type: same [scaled_float]
                               8: 
                              name: same [boolean_field]
                              type: same [boolean]
                               9: 
                              name: same [ip_field]
                              type: same [ip]
                              10: 
                              name: same [version_field]
                              type: same [version]
                              11: 
                              name: same [text_field]
                              type: same [text]
                              12: 
                              name: same [keyword_field]
                              type: same [keyword]
                              13: 
                              name: same [constant_keyword_field]
                              type: same [keyword]
                              14: 
                              name: same [wildcard_field]
                              type: same [keyword]
                              15: 
                              name: same [geo_point_no_dv_field]
                              type: same [geo_point]
                              16: 
                              name: same [geo_shape_field]
                              type: same [geo_shape]
                              17: 
                              name: same [shape_field]
                              type: same [shape]
                              18: 
                              name: same [geo_point_field]
                              type: same [geo_point]
                              19: 
                              name: same [float_field]
                              type: same [float]
                              20: 
                              name: same [half_float_field]
                              type: same [half_float]
                              21: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              22: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              23: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              24: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              25: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              26: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                              27: 
                              name: same [version_field]
                              type: expected String [2.11.4] but was String [version]
                          rows: 
                               0: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [51655088917265744]
                                 3: same [-412969525]
                                 4: same [31717]
                                 5: same [89]
                                 6: same [0.705888646562905]
                                 7: same [123.5]
                                 8: same [true]
                                 9: same [123.123.123.123]
                                10: expected [Mhpug] but was [null]
                                11: expected String [IKMLn] but was String [Mhpug]
                                12: expected String [Ctbwo] but was String [IKMLn]
                                13: expected String [peQXg] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [peQXg]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.45848453] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.4584961] but was Double [0.45848453]
    received [8] more entries than expected
                               1: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [5646281135376737257]
                                 3: same [1191627078]
                                 4: same [6129]
                                 5: same [-87]
                                 6: same [0.7918906131501522]
                                 7: same [123.5]
                                 8: same [false]
                                 9: same [123.123.123.123]
                                10: expected [sxIHT] but was [null]
                                11: expected String [hHppe] but was String [sxIHT]
                                12: expected String [Ctbwo] but was String [hHppe]
                                13: expected String [rNXEW] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [rNXEW]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.8823187] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.8823242] but was Double [0.8823187]
    received [8] more entries than expected
                               2: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [-2732241163192056606]
                                 3: same [-1706086787]
                                 4: same [2211]
                                 5: same [-103]
                                 6: same [0.6838689100932753]
                                 7: same [123.5]
                                 8: same [false]
                                 9: same [123.123.123.123]
                                10: expected [kELzM] but was [null]
                                11: expected String [bwCYM] but was String [kELzM]
                                12: expected String [Ctbwo] but was String [bwCYM]
                                13: expected String [UsZdv] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [UsZdv]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.28439426] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.28442383] but was Double [0.28439426]
    received [8] more entries than expected
                               3: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [5189322136884337007]
                                 3: same [1225955332]
                                 4: same [2897]
                                 5: same [40]
                                 6: same [0.9453128077054023]
                                 7: same [123.5]
                                 8: same [false]
                                 9: same [123.123.123.123]
                                10: expected [Nxwbd] but was [null]
                                11: expected String [dhrIT] but was String [Nxwbd]
                                12: expected String [Ctbwo] but was String [dhrIT]
                                13: expected String [kzctU] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [kzctU]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.68746454] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.6875] but was Double [0.68746454]
    received [8] more entries than expected
                               4: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [-1969950316953391022]
                                 3: same [-1877749500]
                                 4: same [3793]
                                 5: same [-30]
                                 6: same [0.9630208313512066]
                                 7: same [123.5]
                                 8: same [false]
                                 9: same [123.123.123.123]
                                10: expected [kqFYu] but was [null]
                                11: expected String [WiSzB] but was String [kqFYu]
                                12: expected String [Ctbwo] but was String [WiSzB]
                                13: expected String [ryXBp] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [ryXBp]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.77099687] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.7709961] but was Double [0.77099687]
    received [8] more entries than expected
                               5: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [-3023706204378529236]
                                 3: same [776407957]
                                 4: same [12938]
                                 5: same [-90]
                                 6: same [0.7654015642882293]
                                 7: same [123.5]
                                 8: same [true]
                                 9: same [123.123.123.123]
                                10: expected [fHsuO] but was [null]
                                11: expected String [UAfrx] but was String [fHsuO]
                                12: expected String [Ctbwo] but was String [UAfrx]
                                13: expected String [ahXnr] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [ahXnr]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.9886168] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.98876953] but was Double [0.9886168]
    received [8] more entries than expected
                               6: 
                                 0: same [P150Y]
                                 1: same [PT2H43M]
                                 2: same [8724980364664470764]
                                 3: same [1165670901]
                                 4: same [-30617]
                                 5: same [18]
                                 6: same [0.0752939494067677]
                                 7: same [123.5]
                                 8: same [true]
                                 9: same [123.123.123.123]
                                10: expected [qriWJ] but was [null]
                                11: expected String [CUZYO] but was String [qriWJ]
                                12: expected String [Ctbwo] but was String [CUZYO]
                                13: expected String [kKJKw] but was String [Ctbwo]
                                14: expected String [POINT (100.234567 40.123456)] but was String [kKJKw]
                                15: expected String [POINT (-122.083843 37.386483 30.0)] but was String [POINT (100.234567 40.123456)]
                                16: same [POINT (-122.083843 37.386483 30.0)]
                                17: expected String [POINT (-122.083843 37.386483)] but was String [POINT (-122.083843 37.386483 30.0)]
                                18: expected Double [0.08786279] but was String [POINT (-122.083843 37.386483)]
                                19: expected Double [0.087890625] but was Double [0.08786279]
    received [8] more entries than expected

  at __randomizedtesting.SeedInfo.seed([4F6EF0E5DF57FA84:2E2F8AF6ABDC1847]:0)
  at org.junit.Assert.fail(Assert.java:88)
  at org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT.assertResponse(SqlSearchIT.java:269)
  at org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT.lambda$assertAllTypesWithNodes$19(SqlSearchIT.java:250)
  at org.elasticsearch.test.ESTestCase.assertBusy(ESTestCase.java:1104)
  at org.elasticsearch.test.ESTestCase.assertBusy(ESTestCase.java:1077)
  at org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT.assertAllTypesWithNodes(SqlSearchIT.java:250)
  at org.elasticsearch.xpack.sql.qa.mixed_node.SqlSearchIT.testAllTypesWithRequestToOldNodes(SqlSearchIT.java:108)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:568)
  at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:44)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
  at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
  at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
  at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
  at java.lang.Thread.run(Thread.java:833)

```
x-pack/plugin/sql/qa/mixed-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/mixed_node/SqlSearchIT.java
import org.elasticsearch.xpack.ql.TestNode;
import org.elasticsearch.xpack.ql.TestNodes;
import org.junit.After;
import org.junit.Before;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import static java.util.Collections.unmodifiableMap;
import static org.elasticsearch.xpack.ql.TestUtils.buildNodeAndVersions;
import static org.elasticsearch.xpack.ql.TestUtils.readResource;
public class SqlSearchIT extends ESRestTestCase {
    private static final Version VERSION_FIELD_QL_INTRODUCTION = Version.V_8_4_0;
    private static final String index = "test_sql_mixed_versions";
    private static int numShards;
    private static int numReplicas = 1;
    private static int numDocs;
    private static TestNodes nodes;
    private static List<TestNode> newNodes;
    private static List<TestNode> bwcNodes;
    private static Version bwcVersion;
    @Before
    public void createIndex() throws IOException {
        nodes = buildNodeAndVersions(client());