**Found in version**
- Observed in 8.2.3, but might exist longer

**Steps to reproduce**
On a multi node cloud cluster (might also work on a local multi node cluster):
- Create a transform with a retention policy
- Update the transform and remove the retention policy

**Expected result**
- The retention policy is removed

**Actual result**
- This sometimes results in an error:
```
An error occurred calling the API endpoint to update transforms.
Bad Request: [illegal_argument_exception: [illegal_argument_exception] Reason: 
Unknown NamedWriteable [org.elasticsearch.xpack.core.transform.transforms.RetentionPolicyConfig][null_retention_policy]]:
Unknown NamedWriteable [org.elasticsearch.xpack.core.transform.transforms.RetentionPolicyConfig][null_retention_policy]
```

**Additional information**
- Quote from slack discussion with @benwtrent:
  > It wouldn’t happen if you hit a node that can execute the update immediately without serializing to a different node
x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformIT.java
startTransform(config.getId(), RequestOptions.DEFAULT);
        assertBusy(() -> {
            var stateAndStats = getTransformStats(config.getId());
            assertThat(stateAndStats.get("state"), equalTo("indexing"));
        });
        
        String reqsPerSec = randomBoolean() ? "1000" : "null";
        String maxPageSize = randomBoolean() ? "1000" : "null";
        String update = """
            {
                "settings" : {
                    "docs_per_second": %s,
                    "max_page_search_size": %s
                }
            }
            """.formatted(reqsPerSec, maxPageSize);
        updateConfig(config.getId(), update);
        waitUntilCheckpoint(config.getId(), 1L);
        assertThat(getTransformState(config.getId()), equalTo("started"));
        var transformStats = getTransformStats(config.getId());
        int docsIndexed = (Integer) XContentMapValues.extractValue("stats.documents_indexed", transformStats);
        int pagesProcessed = (Integer) XContentMapValues.extractValue("stats.pages_processed", transformStats);
        var storedConfig = getTransform(config.getId());
        assertThat(storedConfig.get("version"), equalTo(Version.CURRENT.toString()));
        Instant now = Instant.now();
        long createTime = (long) storedConfig.get("create_time");
        assertTrue("[create_time] is not before current time", Instant.ofEpochMilli(createTime).isBefore(now));
        
        long timeStamp = Instant.now().toEpochMilli() - 1_000;
        long user = 42;