elsa-workflows / elsa-workflows/elsa-core
[BUG] Error Occurs When Resuming Bookmark, Workflow Fails to Resume
- Dominant language
- C#
- Stars
- 7.9k
- Forks
- 1.5k
- Avg merge
- 15h 22m
- Merged PRs (30d)
- 114
Description
## Description
An error occurs when attempting to resume a suspended bookmark using the Elsa workflow framework, preventing the workflow from resuming successfully. Below is the detailed error stack trace.
## Steps to Reproduce
To help us identify the issue more quickly, please follow these guidelines:
1. **Detailed Steps**: Provide a step-by-step description of what leads to the bug. Be as specific as possible.
2. **Code Snippets**:
```
protected override async ValueTask ExecuteAsync(ActivityExecutionContext context)
{
var eventName = EventName.Get(context) ?? "";
if (!context.IsTriggerOfWorkflow())
{
var book = new CreateBookmarkArgs()
{
Payload = eventName,
Callback = OnResumeAsync
};
context.CreateBookmark(book);
return;
}
await context.CompleteActivityAsync();
}
```
ResumeWorkflows code
```
var activityTypeName=ActivityTypeNameHelper.GenerateTypeName();
await _workflowRuntime.ResumeWorkflowsAsync(activityTypeName, bookMark, options);
```
**Error Stack Trace:**
```
at Elsa.Workflows.Services.ActivityFactory.ReadSyntheticInputs(ActivityDescriptor activityDescriptor, IActivity activity, JsonElement activityRoot, JsonSerializerOptions options)
at Elsa.Workflows.Services.ActivityFactory.Create(Type type, ActivityConstructorContext context)
at Elsa.Workflows.Serialization.Converters.ActivityJsonConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo`1 jsonTypeInfo)
at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options)
at Elsa.Workflows.Serialization.Serializers.JsonActivitySerializer.Deserialize(String serializedActivity)
at Elsa.Workflows.Management.Mappers.WorkflowDefinitionMapper.Map(WorkflowDefinition source)
at Elsa.Workflows.Management.Materializers.JsonWorkflowMaterializer.ToWorkflow(WorkflowDefinition definition)
at Elsa.Workflows.Management.Materializers.JsonWorkflowMaterializer.MaterializeAsync(WorkflowDefinition definition, CancellationToken cancellationToken)
at Elsa.Workflows.Management.Services.WorkflowDefinitionService.d__4.MoveNext()
at Elsa.Workflows.Management.Services.WorkflowDefinitionService.d__8.MoveNext()
at Elsa.Workflows.Runtime.Services.DefaultWorkflowRuntime.d__19.MoveNext()
at Elsa.Workflows.Runtime.Services.DefaultWorkflowRuntime.d__19.MoveNext()
at Elsa.Workflows.Runtime.Services.DefaultWorkflowRuntime.d__32.MoveNext()
at Elsa.Workflows.Runtime.Services.DefaultWorkflowRuntime.d__20.MoveNext()
at Danduola.IOTCoBotOS.Application.Workflow.FlowEvent.FlowEventWapper.d__7.MoveNext() in E:\work\git\danduola.iotcobotos\API\Danduola.IOTCoBotOS.Application\Workflow\FlowEvent\FlowEventWapper.cs:line 131
```
Environment:
Elsa Version: [3.2.3]
.NET Version: [..NET 8]
Database Provider: [Sqllite]
Hosting Environment: [Windows]
Additional Context:
Verify if the related activities contain custom fields or use custom types.
There may be issues with the data format of the suspended state or changes in activity definitions.
Suggested Fix or Investigation Areas:
Investigate the ReadSyntheticInputs method and its logic for parsing activity inputs.
Validate if ActivityJsonConverter and JsonSerializerOptions correctly register the required types and converters.
Provide additional documentation or debugging support for bookmark and activity serialization formats.
Contributor guide
Assessment
This issue has not been assessed yet.