### CI Link

https://gradle-enterprise.elastic.co/s/o5szwywjimd6o/

### Repro line

./gradlew ':x-pack:plugin:core:test' --tests "org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests.testMergeWithJob" -Dtests.seed=574F3B6BEFEFE6BA -Dtests.locale=ar-DZ -Dtests.timezone=Universal -Druntime.java=20

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

```
org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests > testMergeWithJob FAILED
    java.lang.IllegalArgumentException: Cannot convert 8.11.0. Incompatible version
        at __randomizedtesting.SeedInfo.seed([574F3B6BEFEFE6BA:691D63E8F460F0FE]:0)
        at org.elasticsearch.xpack.core.ml.MlConfigVersion.fromVersion(MlConfigVersion.java:274)
        at org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests.testMergeWithJob(JobUpdateTests.java:296)
```

With all these "versions" that we have now decoupled from transport version or node version, we need to ensure that all get bumped when a version bump occurs. There are too many of these things to not catch them in CI in a version bump for a cut release.
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/job/config/JobUpdateTests.java
detectorUpdates.add(new JobUpdate.DetectorUpdate(1, "description-2", detectionRules2));
        ModelPlotConfig modelPlotConfig = ModelPlotConfigTests.createRandomized();
        AnalysisLimits analysisLimits = new AnalysisLimits(randomNonNegativeLong(), randomNonNegativeLong());
        List<String> categorizationFilters = Arrays.asList(generateRandomStringArray(10, 10, false));
        Map<String, Object> customSettings = Collections.singletonMap(randomAlphaOfLength(10), randomAlphaOfLength(10));
        JobUpdate.Builder updateBuilder = new JobUpdate.Builder("foo");
        updateBuilder.setGroups(Arrays.asList("group-1", "group-2"));
        updateBuilder.setDescription("updated_description");
        updateBuilder.setDetectorUpdates(detectorUpdates);
        updateBuilder.setModelPlotConfig(modelPlotConfig);
        updateBuilder.setAnalysisLimits(analysisLimits);
        updateBuilder.setBackgroundPersistInterval(TimeValue.timeValueHours(randomIntBetween(1, 24)));
        updateBuilder.setResultsRetentionDays(randomNonNegativeLong());
        
        long newModelSnapshotRetentionDays = randomNonNegativeLong();
        updateBuilder.setModelSnapshotRetentionDays(newModelSnapshotRetentionDays);
        updateBuilder.setDailyModelSnapshotRetentionAfterDays(randomLongBetween(0, newModelSnapshotRetentionDays));
        updateBuilder.setRenormalizationWindowDays(randomNonNegativeLong());
        updateBuilder.setCategorizationFilters(categorizationFilters);
        updateBuilder.setPerPartitionCategorizationConfig(new PerPartitionCategorizationConfig(true, randomBoolean()));
        updateBuilder.setCustomSettings(customSettings);
        updateBuilder.setModelSnapshotId(randomAlphaOfLength(10));
        updateBuilder.setJobVersion(MlConfigVersionUtils.randomCompatibleVersion(random()));
        updateBuilder.setModelPruneWindow(TimeValue.timeValueDays(randomIntBetween(1, 100)));
        JobUpdate update = updateBuilder.build();
        Job.Builder jobBuilder = new Job.Builder("foo");
        jobBuilder.setGroups(Collections.singletonList("group-1"));
        Detector.Builder d1 = new Detector.Builder("info_content", "domain");
        d1.setOverFieldName("mlcategory");
        d1.setPartitionFieldName("host");