elsa-workflows / elsa-workflows/elsa-core

Run ApprovalDocumentWorkflow in SqlServer gets an error. (Elsa v3.4.2)

Open
#6,831 1 comment 0 reactions 0 assignees View on GitHub
triaged
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.