Got this error in client's environment. So can't create short example. If needed, I can enable required debug log and re-run.

virtual is enabled: true java: Temurin-21+35

Full repo is here https://github.com/sergmain/metaheuristic

2023-10-26T14:14:49.013+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : Current system properties:
2023-10-26T14:14:49.015+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       CONSOLE_LOG_CHARSET: UTF-8
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       FILE_LOG_CHARSET: UTF-8
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       LOG_FILE: /opt/mh-processor-pc13/logs/mh-processor-pc13.log
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       PID: 42540
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       file.encoding: UTF-8
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       file.separator: /
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.awt.headless: true
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.class.version: 65.0
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.home: /opt/adoptium/jdk-21+35
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.io.tmpdir: /tmp
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.protocol.handler.pkgs: org.springframework.boot.loader.net.protocol
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.runtime.name: OpenJDK Runtime Environment
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.runtime.version: 21+35-LTS
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.specification.name: Java Platform API Specification
2023-10-26T14:14:49.016+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.specification.vendor: Oracle Corporation
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.specification.version: 21
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vendor: Eclipse Adoptium
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vendor.url: https://adoptium.net/
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vendor.url.bug: https://github.com/adoptium/adoptium-support/issues
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vendor.version: Temurin-21+35
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.version: 21
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.version.date: 2023-09-19
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.compressedOopsMode: 32-bit
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.info: mixed mode, sharing
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.name: OpenJDK 64-Bit Server VM
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.specification.name: Java Virtual Machine Specification
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.specification.vendor: Oracle Corporation
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.specification.version: 21
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.vendor: Eclipse Adoptium
2023-10-26T14:14:49.017+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       java.vm.version: 21+35-LTS
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       jdk.debug: release
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       mh.home: /opt/mh-processor-pc13
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       native.encoding: UTF-8
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       org.jboss.logging.provider: slf4j
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       os.arch: amd64
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       os.name: Linux
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       os.version: 5.4.0-165-generic
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       path.separator: :
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       reactor.schedulers.defaultBoundedElasticOnVirtualThreads: true
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       spring.profiles.active: dispatcher,processor,derby,standalone,disk-storage
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       stderr.encoding: UTF-8
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       stdout.encoding: UTF-8
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.arch.data.model: 64
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.boot.library.path: /opt/adoptium/jdk-21+35/lib
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.cpu.endian: little
2023-10-26T14:14:49.018+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.io.unicode.encoding: UnicodeLittle
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.java.command: /opt/mh-processor-pc13/metaheuristic.jar
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.java.launcher: SUN_STANDARD
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.jnu.encoding: UTF-8
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       sun.management.compiler: HotSpot 64-Bit Tiered Compilers
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       user.dir: /opt/mh-processor-pc13
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       user.home: /root
2023-10-26T14:14:49.019+08:00  INFO 42540 --- [main] ai.metaheuristic.ai.Globals              : '       user.name: root
2023-10-26T14:14:49.033+08:00  WARN 42540 --- [main] ai.metaheuristic.ai.Config               : Spring properties:
2023-10-26T14:14:49.034+08:00  WARN 42540 --- [main] ai.metaheuristic.ai.Config               : '       server host:port: localhost:8080
2023-10-26T14:14:49.034+08:00  WARN 42540 --- [main] ai.metaheuristic.ai.Config               : '       virtual is enabled: true

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-10-26T14:14:56.968+08:00 ERROR 42540 --- [main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationTaskExecutor' defined in class path resource [org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations$TaskExecutorConfiguration.class]: Failed to instantiate [org.springframework.core.task.SimpleAsyncTaskExecutor]: Factory method 'applicationTaskExecutorVirtualThreads' threw exception with message: Virtual threads not supported on JDK <21
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:654) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:642) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:947) ~[spring-context-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:748) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:450) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1336) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1325) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at ai.metaheuristic.ai.MetaheuristicApplication.main(MetaheuristicApplication.java:43) ~[!/:6.0.2-SNAPSHOT]
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[metaheuristic.jar:6.0.2-SNAPSHOT]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[metaheuristic.jar:6.0.2-SNAPSHOT]
        at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:54) ~[metaheuristic.jar:6.0.2-SNAPSHOT]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.core.task.SimpleAsyncTaskExecutor]: Factory method 'applicationTaskExecutorVirtualThreads' threw exception with message: Virtual threads not supported on JDK <21
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        ... 24 common frames omitted
Caused by: java.lang.UnsupportedOperationException: Virtual threads not supported on JDK <21
        at org.springframework.core.task.VirtualThreadDelegate.<init>(VirtualThreadDelegate.java:32) ~[spring-core-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.core.task.SimpleAsyncTaskExecutor.setVirtualThreads(SimpleAsyncTaskExecutor.java:125) ~[spring-core-6.1.0-RC1.jar!/:6.1.0-RC1]
        at org.springframework.boot.context.properties.PropertyMapper$Source.to(PropertyMapper.java:294) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder.configure(SimpleAsyncTaskExecutorBuilder.java:202) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder.build(SimpleAsyncTaskExecutorBuilder.java:176) ~[spring-boot-3.2.0-RC1.jar!/:3.2.0-RC1]
        at org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$TaskExecutorConfiguration.applicationTaskExecutorVirtualThreads(TaskExecutorConfigurations.java:59) ~[spring-boot-autoconfigure-3.2.0-RC1.jar!/:3.2.0-RC1]
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139) ~[spring-beans-6.1.0-RC1.jar!/:6.1.0-RC1]
        ... 25 common frames omitted

Comment From: wilkinsona

Duplicates #38050.

Comment From: sergmain

3.2.0-SNAPSHOT version is working

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/getting-started.html

Comment From: philwebb

@sergmain Thanks very much for testing it 👍