During desired nodes updates the system validates that the provided node settings are valid in order to avoid boot looping issues. If one of the node settings depends on a secure setting, the validation fails even when the secure setting is present and correct.
server/src/main/java/org/elasticsearch/node/Node.java
stopIfStarted(GatewayService.class);
        stopIfStarted(SearchService.class);
        stopIfStarted(TransportService.class);
        pluginLifecycleComponents.forEach(Node::stopIfStarted);
        
        
        stopIfStarted(IndicesService.class);
        logger.info("stopped");
    }
    private <T extends LifecycleComponent> void stopIfStarted(Class<T> componentClass) {
        stopIfStarted(injector.getInstance(componentClass));
    }
    private static void stopIfStarted(LifecycleComponent component) {
        
        if (component.lifecycleState() == Lifecycle.State.STARTED) {
            component.stop();
        }
    }
    
    
    
    
    @Override
    public synchronized void close() throws IOException {
        synchronized (lifecycle) {
            if (lifecycle.started()) {
                stop();
            }
            if (lifecycle.moveToClosed() == false) {
                return;