elsa-workflows / elsa-workflows/elsa-core
Run ApprovalDocumentWorkflow in SqlServer gets an error. (Elsa v3.4.2)
- Dominant language
- C#
- Stars
- 7.9k
- Forks
- 1.5k
- Avg merge
- 15h 22m
- Merged PRs (30d)
- 114
Description
When I use SqlServer to store the workflow runtime gets the error, my configration like this :
// Add Elsa services.
services.AddElsa(elsa => elsa
.UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef => ef.UseSqlServer(workflowConn)))
.UseWorkflowRuntime(runtime => runtime.UseEntityFrameworkCore(ef => ef.UseSqlServer(workflowConn)))
.AddWorkflowsFrom()
// Add FastEndpoints.
.UseWorkflowsApi()
// Enable SAS tokens.
.UseSasTokens()
// Enable Elsa HTTP module (for HTTP related activities).
.UseHttp(http => http.ConfigureHttpOptions = options =>
{
options.BaseUrl = new Uri("https://localhost:5003");
})
);
Wether I use this config => elsa.UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef=>ef.UseSqlite()));
or use this => elsa.UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef=>ef.UseSqlServer(workflowConn)));
In these two cases , run the workflow, approval all the document (two steps all right), the workflow will be set to finished (or completed), get this exception:
warn: Elsa.Workflows.Middleware.Activities.ExceptionHandlingMiddleware[0]
An exception was caught from a downstream middleware component
System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.List`1[System.String]' to type 'System.Collections.Generic.HashSet`1[System.String]'.
at Elsa.Extensions.DictionaryExtensions.TryGetValue[TKey,T](IDictionary`2 dictionary, TKey key, T& value)
at Elsa.Workflows.ActivityExecutionContext.GetProperty[T](String key)
at Elsa.Workflows.ActivityExecutionContext.UpdateProperty[T](String key, Func`2 updater)
at Elsa.Workflows.Activities.Fork.CompleteChildAsync(ActivityCompletedContext context)
at Elsa.Workflows.Behaviors.ScheduledChildCallbackBehavior.OnActivityCompletedAsync(ActivityCompleted signal, SignalContext context)
at Elsa.Workflows.Behavior.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Workflows.Activity.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Extensions.ActivityExecutionContextExtensions.SendSignalAsync(ActivityExecutionContext context, Object signal)
at Elsa.Workflows.ActivityExecutionContext.CompleteActivityAsync(Object result)
at Elsa.Workflows.Activities.Sequence.HandleItemAsync(ActivityExecutionContext context)
at Elsa.Workflows.Activities.Sequence.OnChildCompleted(ActivityCompletedContext context)
at Elsa.Workflows.Behaviors.ScheduledChildCallbackBehavior.OnActivityCompletedAsync(ActivityCompleted signal, SignalContext context)
at Elsa.Workflows.Behavior.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Workflows.Activity.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Extensions.ActivityExecutionContextExtensions.SendSignalAsync(ActivityExecutionContext context, Object signal)
at Elsa.Workflows.ActivityExecutionContext.CompleteActivityAsync(Object result)
at Elsa.Workflows.Activity.CompleteAsync(ActivityExecutionContext context)
at Elsa.Workflows.Activities.Fork.CompleteChildAsync(ActivityCompletedContext context)
at Elsa.Workflows.Behaviors.ScheduledChildCallbackBehavior.OnActivityCompletedAsync(ActivityCompleted signal, SignalContext context)
at Elsa.Workflows.Behavior.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Workflows.Activity.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Extensions.ActivityExecutionContextExtensions.SendSignalAsync(ActivityExecutionContext context, Object signal)
at Elsa.Workflows.ActivityExecutionContext.CompleteActivityAsync(Object result)
at Elsa.Workflows.Activities.Sequence.HandleItemAsync(ActivityExecutionContext context)
at Elsa.Workflows.Activities.Sequence.OnChildCompleted(ActivityCompletedContext context)
at Elsa.Workflows.Behaviors.ScheduledChildCallbackBehavior.OnActivityCompletedAsync(ActivityCompleted signal, SignalContext context)
at Elsa.Workflows.Behavior.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Workflows.Activity.Elsa.Workflows.ISignalHandler.ReceiveSignalAsync(Object signal, SignalContext context)
at Elsa.Extensions.ActivityExecutionContextExtensions.SendSignalAsync(ActivityExecutionContext context, Object signal)
at Elsa.Workflows.ActivityExecutionContext.CompleteActivityAsync(Object result)
at Elsa.Http.WriteHttpResponse.WriteResponseAsync(ActivityExecutionContext context, HttpResponse response)
at Elsa.Http.WriteHttpResponse.ExecuteAsync(ActivityExecutionContext context)
at Elsa.Workflows.Activity.Elsa.Workflows.IActivity.ExecuteAsync(ActivityExecutionContext context)
at Elsa.Workflows.Middleware.Activities.DefaultActivityInvokerMiddleware.ExecuteActivityAsync(ActivityExecutionContext context)
at Elsa.Workflows.Runtime.Middleware.Activities.BackgroundActivityInvokerMiddleware.ExecuteActivityAsync(ActivityExecutionContext context)
at Elsa.Workflows.Middleware.Activities.DefaultActivityInvokerMiddleware.InvokeAsync(ActivityExecutionContext context)
at Elsa.Workflows.Runtime.Middleware.EvaluateLogPersistenceModesMiddleware.InvokeAsync(ActivityExecutionContext context)
at Elsa.Workflows.Middleware.Activities.NotificationPublishingMiddleware.InvokeAsync(ActivityExecutionContext context)
at Elsa.Workflows.Middleware.Activities.ExecutionLogMiddleware.InvokeAsync(ActivityExecutionContext context)
at Elsa.Workflows.Middleware.Activities.ExceptionHandlingMiddleware.InvokeAsync(ActivityExecutionContext context)
Contributor guide
Assessment
This issue has not been assessed yet.