From 6632b175b5ac6f3d94d5daa8964d7585750e4567 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:45:17 +0000 Subject: [PATCH 1/2] Initial plan From c6cad33681839873a9177b77ce9c10cd2eaa8486 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:51:21 +0000 Subject: [PATCH 2/2] fix: stop activity refresh loop when circuit services are disposed Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> --- .../WorkflowInstanceDesigner.razor.cs | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/modules/Elsa.Studio.Workflows/Components/WorkflowInstanceViewer/Components/WorkflowInstanceDesigner.razor.cs b/src/modules/Elsa.Studio.Workflows/Components/WorkflowInstanceViewer/Components/WorkflowInstanceDesigner.razor.cs index ab8640eaf..ed4cb703b 100644 --- a/src/modules/Elsa.Studio.Workflows/Components/WorkflowInstanceViewer/Components/WorkflowInstanceDesigner.razor.cs +++ b/src/modules/Elsa.Studio.Workflows/Components/WorkflowInstanceViewer/Components/WorkflowInstanceDesigner.razor.cs @@ -313,17 +313,24 @@ private async Task UpdatePropertiesPaneHeightAsync() private async Task RefreshSelectedItemAsync(string activityExecutionRecordId) { - if (LastActivityExecution != null) + try { - _activityExecutionRecordsLookup.Remove(LastActivityExecution.ActivityNodeId); - SelectedActivityExecutions = await GetActivityExecutionRecordsAsync(LastActivityExecution.ActivityNodeId); - } + if (LastActivityExecution != null) + { + _activityExecutionRecordsLookup.Remove(LastActivityExecution.ActivityNodeId); + SelectedActivityExecutions = await GetActivityExecutionRecordsAsync(LastActivityExecution.ActivityNodeId); + } - await InvokeAsync(() => + await InvokeAsync(() => + { + StateHasChanged(); + _activityDetailsTab?.Refresh(); + }); + } + catch (ObjectDisposedException) { - StateHasChanged(); - _activityDetailsTab?.Refresh(); - }); + await StopRefreshActivityStatePeriodically(); + } } private void RefreshActivityStatePeriodically(string activityExecutionRecordId) @@ -419,4 +426,4 @@ async ValueTask IAsyncDisposable.DisposeAsync() if (_refreshTimer != null) await _refreshTimer.DisposeAsync(); } -} \ No newline at end of file +}