diff --git a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs index d7e3dcc98..7f9d5f521 100644 --- a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs +++ b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs @@ -805,7 +805,7 @@ bool ReconcileMessagesWithState(TaskOrchestrationWorkItem workItem) out bool continuedAsNew) { ExecutionCompletedEvent executionCompletedEvent; - continuedAsNew = (completeOrchestratorAction.OrchestrationStatus == OrchestrationStatus.ContinuedAsNew); + continuedAsNew = (completeOrchestratorAction.OrchestrationStatus == OrchestrationStatus.ContinuedAsNew) && (runtimeState.OrchestrationStatus != OrchestrationStatus.Terminated); if (completeOrchestratorAction.OrchestrationStatus == OrchestrationStatus.ContinuedAsNew) { executionCompletedEvent = new ContinueAsNewEvent(completeOrchestratorAction.Id, @@ -819,7 +819,10 @@ bool ReconcileMessagesWithState(TaskOrchestrationWorkItem workItem) completeOrchestratorAction.FailureDetails); } - runtimeState.AddEvent(executionCompletedEvent); + if (runtimeState.OrchestrationStatus != OrchestrationStatus.Terminated) + { + runtimeState.AddEvent(executionCompletedEvent); + } this.logHelper.OrchestrationCompleted(runtimeState, completeOrchestratorAction); TraceHelper.TraceInstance( @@ -1076,4 +1079,4 @@ public void Release() } } } -} \ No newline at end of file +}