diff --git a/src/modules/Elsa.Workflows.Runtime/Handlers/ResumeBulkDispatchWorkflowActivity.cs b/src/modules/Elsa.Workflows.Runtime/Handlers/ResumeBulkDispatchWorkflowActivity.cs index 7532d376e..5c95a13a4 100644 --- a/src/modules/Elsa.Workflows.Runtime/Handlers/ResumeBulkDispatchWorkflowActivity.cs +++ b/src/modules/Elsa.Workflows.Runtime/Handlers/ResumeBulkDispatchWorkflowActivity.cs @@ -26,7 +26,10 @@ internal class ResumeBulkDispatchWorkflowActivity(IBookmarkQueue bookmarkQueue, if (!waitForCompletion) return; - var parentInstanceId = (string)workflowState.Properties["ParentInstanceId"]; + if (!workflowState.Properties.TryGetValue("ParentInstanceId", out var parentInstanceIdValue)) + return; + + var parentInstanceId = (string)parentInstanceIdValue; var activityTypeName = ActivityTypeNameHelper.GenerateTypeName(); var stimulus = new BulkDispatchWorkflowsStimulus(parentInstanceId); var stimulusHash = stimulusHasher.Hash(activityTypeName, stimulus); diff --git a/test/component/Elsa.Workflows.ComponentTests/Scenarios/WorkflowActivities/DeleteWorkflowTests.cs b/test/component/Elsa.Workflows.ComponentTests/Scenarios/WorkflowActivities/DeleteWorkflowTests.cs index 96fb810be..2a13ec262 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Scenarios/WorkflowActivities/DeleteWorkflowTests.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Scenarios/WorkflowActivities/DeleteWorkflowTests.cs @@ -36,6 +36,9 @@ public class DeleteWorkflowTests : AppComponentTest var workflowDefinitionManager = _scope1.ServiceProvider.GetRequiredService(); await workflowDefinitionManager.DeleteByDefinitionIdAsync(Workflows.DeleteWorkflow.DefinitionId); + // Wait for the event handler to process the deletion from the activity registry + await _signalManager.WaitAsync(WorkflowDeletedSignal, 5000); + WorkflowTypeDeletedFromRegistry(_scope1, Workflows.DeleteWorkflow.Type); }