diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Endpoint.cs index dc02f607c..5d77b8e27 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Endpoint.cs @@ -61,22 +61,23 @@ public class Execute : ElsaEndpoint { var workflowState = await _workflowRuntime.ExportWorkflowStateAsync(result.WorkflowInstanceId, cancellationToken); await HandleFaultAsync(workflowState!, cancellationToken); - return; } - - // Resume any HTTP bookmarks. - await _httpBookmarkProcessor.ProcessBookmarks(new[] { result }, correlationId, default, cancellationToken); - - var workflowState2 = await _workflowRuntime.ExportWorkflowStateAsync(result.WorkflowInstanceId, cancellationToken); - - if (workflowState2!.SubStatus == WorkflowSubStatus.Faulted) + else { - await HandleFaultAsync(workflowState2, cancellationToken); - return; - } + // Resume any HTTP bookmarks. + await _httpBookmarkProcessor.ProcessBookmarks(new[] { result }, correlationId, default, cancellationToken); - if (!HttpContext.Response.HasStarted) - await SendOkAsync(new Response(result.WorkflowInstanceId), cancellationToken); + var workflowState = await _workflowRuntime.ExportWorkflowStateAsync(result.WorkflowInstanceId, cancellationToken); + + if (workflowState!.SubStatus == WorkflowSubStatus.Faulted) + { + await HandleFaultAsync(workflowState, cancellationToken); + return; + } + + if (!HttpContext.Response.HasStarted) + await SendOkAsync(new Response(workflowState), cancellationToken); + } } private async Task HandleFaultAsync(WorkflowState workflowState, CancellationToken cancellationToken) diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Models.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Models.cs index 749f83ffe..faf36eb96 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Models.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Execute/Models.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Elsa.Workflows.Core.Serialization.Converters; +using Elsa.Workflows.Core.State; namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Execute; @@ -14,10 +15,10 @@ public class Request public class Response { - public Response(string instanceId) + public Response(WorkflowState workflowState) { - InstanceId = instanceId; + WorkflowState = workflowState; } - public string InstanceId { get; } + public WorkflowState WorkflowState { get; } } \ No newline at end of file