Today the `ReservedClusterStateService` decides whether or not to submit an update-error task depending on the content of the last-applied state as exposed by `ClusterService#state()`. This may happen concurrently with another state being published, so does not give a fully consistent view of the latest state. Instead it should check the state within the cluster state task executor, triggering a no-op update as appropriate.
server/src/main/java/org/elasticsearch/reservedstate/service/ReservedStateUpdateTask.java
return false;
        }
        
        if (reservedStateVersion.version() <= 0L) {
            logger.warn(
                () -> format(
                    "Not updating reserved cluster state for namespace [%s], because version [%s] is less or equal to 0",
                    namespace,
                    reservedStateVersion.version(),
                    existingMetadata.version()
                )
            );
            return false;
        }
        if (existingMetadata != null && existingMetadata.version() >= reservedStateVersion.version()) {
            logger.warn(
                () -> format(
                    "Not updating reserved cluster state for namespace [%s], because version [%s] is less or equal"
                        + " to the current metadata version [%s]",
                    namespace,
                    reservedStateVersion.version(),
                    existingMetadata.version()
                )
            );
            return false;
        }
        return true;
    }
}