danielgerlag / danielgerlag/workflow-core
Workflow is too large to save
- Dominant language
- C#
- Stars
- 5.9k
- Forks
- 1.3k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 5
Description
**Describe the bug**
When workflow size is too large, its unable to save it. Mongodb returns "Resulting document after update is larger than 16777216".
**To Reproduce**
To create a document with size > 16777216.
**Expected behavior**
There should be a chance, call back or event handler to let program to deal with the situation.
**Additional context**
C# exception log:
`WorkflowCore.Services.BackgroundTasks.WorkflowConsumer[0]
Error executing item 620a27c81070df48926dccaa - A write operation resulted in an error. WriteError: { Category : "Uncategorized", Code : 17419, Message : "Resulting document after update is larger than 16777216" }.
MongoDB.Driver.MongoWriteException: A write operation resulted in an error. WriteError: { Category : "Uncategorized", Code : 17419, Message : "Resulting document after update is larger than 16777216" }.
---> MongoDB.Driver.MongoBulkWriteException`1[WorkflowCore.Models.WorkflowInstance]: A bulk write operation resulted in one or more errors. WriteErrors: [ { Category : "Uncategorized", Code : 17419, Message : "Resulting document after update is larger than 16777216" } ].
at MongoDB.Driver.MongoCollectionImpl`1.BulkWriteAsync(IClientSessionHandle session, IEnumerable`1 requests, BulkWriteOptions options, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl`1.UsingImplicitSessionAsync[TResult](Func`2 funcAsync, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionBase`1.ReplaceOneAsync(FilterDefinition`1 filter, TDocument replacement, ReplaceOptions options, Func`3 bulkWriteAsync)
--- End of inner exception stack trace ---
at MongoDB.Driver.MongoCollectionBase`1.ReplaceOneAsync(FilterDefinition`1 filter, TDocument replacement, ReplaceOptions options, Func`3 bulkWriteAsync)
at WorkflowCore.Persistence.MongoDB.Services.MongoPersistenceProvider.PersistWorkflow(WorkflowInstance workflow, CancellationToken cancellationToken)
at WorkflowCore.Services.BackgroundTasks.WorkflowConsumer.ProcessItem(String itemId, CancellationToken cancellationToken)
at WorkflowCore.Services.BackgroundTasks.WorkflowConsumer.ProcessItem(String itemId, CancellationToken cancellationToken)
at WorkflowCore.Services.BackgroundTasks.QueueConsumer.ExecuteItem(String itemId, EventWaitHandle waitHandle, Activity activity)`
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.