eclipse-vertx/vert.x · error · VertxException
This Java runtime does not support virtual threads
Error message
This Java runtime does not support virtual threads
What it means
Environment capability check during deployment: the verticle's DeploymentOptions request the VIRTUAL_THREAD threading model, but the current Java runtime does not support virtual threads (JDK < 21 or preview disabled). Deployment aborts because worker execution cannot proceed as configured.
Source
Thrown at vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeployment.java:67
throw new VertxException("Supplied deployable is null", true);
}
deployables.add(deployable);
}
if (deployables.size() != numberOfInstances) {
throw new VertxException("Same deployable supplied more than once", true);
}
CloseableResource<WorkerPool> workerPool = null;
ThreadingModel mode = options.getThreadingModel();
if (mode == null) {
mode = ThreadingModel.EVENT_LOOP;
}
if (mode != ThreadingModel.VIRTUAL_THREAD) {
if (options.getWorkerPoolName() != null) {
workerPool = vertx.createSharedWorkerPool(options.getWorkerPoolName(), options.getWorkerPoolSize(), options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit());
}
} else {
if (!vertx.isVirtualThreadAvailable()) {
throw new VertxException("This Java runtime does not support virtual threads", true);
}
}
ArrayList<Deployable> list = new ArrayList<>(deployables);
return new DefaultDeployment(vertx, options, log, list, identifierProvider.apply(list.get(0)), mode, workerPool, tccl);
}
private final VertxImpl vertx;
private final DeploymentOptions options;
private final Logger log;
private final List<Deployable> deployables;
private final ThreadingModel threading;
private final CloseableResource<WorkerPool> workerPoolResource;
private final WorkerPool workerPool;
private final String identifier;
private final List<Instance> instances = new CopyOnWriteArrayList<>();
private final ClassLoader tccl;
public DefaultDeployment(VertxImpl vertx,View on GitHub (pinned to fb308bd8c3)
Solutions
- Run on JDK 21+ with virtual threads enabled
- Fall back to ThreadingModel.WORKER or EVENT_LOOP on older runtimes
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeployment.java:67 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of eclipse-vertx/vert.x@fb308bd8c3 (2026-09-06).
Data as JSON: /api/errors/3bb3380641f1c531.
Report an issue: GitHub.