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/internalClusterTest/java/org/elasticsearch/action/admin/cluster/desirednodes/TransportDesiredNodesActionsIT.java
{
            final var updateDesiredNodesRequest = new UpdateDesiredNodesRequest(
                UUIDs.randomBase64UUID(),
                randomIntBetween(1, 20),
                randomList(
                    1,
                    20,
                    () -> randomDesiredNode(
                        Version.CURRENT,
                        Settings.builder().put(NODE_PROCESSORS_SETTING.getKey(), numProcessors + 1).build(),
                        numProcessors
                    )
                ),
                false
            );
            final IllegalArgumentException exception = expectThrows(
                IllegalArgumentException.class,
                () -> updateDesiredNodes(updateDesiredNodesRequest)
            );
            assertThat(exception.getMessage(), containsString("Nodes with ids"));
            assertThat(exception.getMessage(), containsString("contain invalid settings"));
            assertThat(exception.getSuppressed().length > 0, is(equalTo(true)));
            assertThat(
                exception.getSuppressed()[0].getMessage(),
                containsString(
                    String.format(
                        Locale.ROOT,
                        "Failed to parse value [%d] for setting [node.processors] must be <= %d",
                        numProcessors + 1,
                        numProcessors