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);