diff --git a/src/modules/Elsa.Workflows.Core/Extensions/BackgroundActivityExecutionContextExtensions.cs b/src/modules/Elsa.Workflows.Core/Extensions/BackgroundActivityExecutionContextExtensions.cs index b427d6751..eaae54b29 100644 --- a/src/modules/Elsa.Workflows.Core/Extensions/BackgroundActivityExecutionContextExtensions.cs +++ b/src/modules/Elsa.Workflows.Core/Extensions/BackgroundActivityExecutionContextExtensions.cs @@ -40,9 +40,9 @@ public static class BackgroundActivityExecutionContextExtensions /// /// Gets the background outcomes. /// - public static IEnumerable GetBackgroundOutcomes(this ActivityExecutionContext activityExecutionContext) + public static IEnumerable? GetBackgroundOutcomes(this ActivityExecutionContext activityExecutionContext) { - return activityExecutionContext.GetProperty>("BackgroundOutcomes") ?? Enumerable.Empty(); + return activityExecutionContext.GetProperty>("BackgroundOutcomes"); } /// diff --git a/src/modules/Elsa.Workflows.Runtime/Services/DefaultBackgroundActivityInvoker.cs b/src/modules/Elsa.Workflows.Runtime/Services/DefaultBackgroundActivityInvoker.cs index 1e46a389e..653aa2c9b 100644 --- a/src/modules/Elsa.Workflows.Runtime/Services/DefaultBackgroundActivityInvoker.cs +++ b/src/modules/Elsa.Workflows.Runtime/Services/DefaultBackgroundActivityInvoker.cs @@ -110,7 +110,7 @@ public class DefaultBackgroundActivityInvoker : IBackgroundActivityInvoker var outcomesKey = BackgroundActivityInvokerMiddleware.GetBackgroundActivityOutcomesKey(activityNodeId); var journalDataKey = BackgroundActivityInvokerMiddleware.GetBackgroundActivityJournalDataKey(activityNodeId); var scheduledActivitiesKey = BackgroundActivityInvokerMiddleware.GetBackgroundActivityScheduledActivitiesKey(activityNodeId); - var outcomes = activityExecutionContext.GetBackgroundOutcomes().ToList(); + var outcomes = activityExecutionContext.GetBackgroundOutcomes()?.ToList(); var scheduledActivities = activityExecutionContext.GetBackgroundScheduledActivities().ToList(); var dispatchRequest = new DispatchWorkflowInstanceRequest @@ -119,13 +119,15 @@ public class DefaultBackgroundActivityInvoker : IBackgroundActivityInvoker BookmarkId = bookmarkId, Properties = new Dictionary { - [outcomesKey] = outcomes, [scheduledActivitiesKey] = JsonSerializer.Serialize(scheduledActivities), [inputKey] = outputValues, [journalDataKey] = activityExecutionContext.JournalData } }; + if (outcomes != null) + dispatchRequest.Properties[outcomesKey] = outcomes; + if (cancellationToken.IsCancellationRequested) { _logger.LogInformation("Background execution for activity {ActivityNodeId} was canceled", activityNodeId);