diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/WaitExecutor.java b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/WaitExecutor.java index 8e49ee864..ba8b7a8c1 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/WaitExecutor.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/WaitExecutor.java @@ -56,10 +56,12 @@ protected WaitExecutor(WaitExecutorBuilder builder) { protected CompletableFuture internalExecute( WorkflowContext workflow, TaskContext taskContext) { workflow.instance().status(WorkflowStatus.WAITING); - return new CompletableFuture() - .completeOnTimeout( - taskContext.output(), + CompletableFuture future = new CompletableFuture<>(); + CompletableFuture.delayedExecutor( durationResolver.apply(workflow, taskContext, taskContext.input()).toMillis(), - TimeUnit.MILLISECONDS); + TimeUnit.MILLISECONDS, + workflow.definition().application().executorService()) + .execute(() -> future.complete(taskContext.output())); + return future; } }