I have a workflow action executed as a model dialog. Saving changes from this dialog is executed by another workflow that also deletes some child records. Both workflows end successfully (based on trace), but the server throws an exception.
Happens in build 2026.4.
2026-10-06 21:05:36,810 [32] ERROR Origam.Server.Middleware.OrigamErrorHandlingMiddleware - Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at Origam.DA.DatasetTools.PrimaryKey(DataRow row) in D:\a\1\s\backend\Origam.DA.Service\DatasetTools.cs:line 199
at Origam.DA.DatasetTools.RowExistsInOtherTable(DataTable sourceTable, DataRow targetRow) in D:\a\1\s\backend\Origam.DA.Service\DatasetTools.cs:line 2130
at Origam.DA.DatasetTools.GetDeletedRows(DataSet sourceData, DataSet targetData) in D:\a\1\s\backend\Origam.DA.Service\DatasetTools.cs:line 2091
at Origam.Server.ServerEntityUIActionRunnerClient.ProcessWorkflowResults(UserProfile profile, ExecuteActionProcessData processData, DataSet sourceData, DataSet targetData, EntityWorkflowAction entityWorkflowAction, List`1 changes) in D:\a\1\s\backend\Origam.Server\Common\ServerEntityUIActionRunnerClient.cs:line 204
at Origam.Gui.EntityUIActionRunner.ExecuteWorkflowAction(ExecuteActionProcessData processData) in D:\a\1\s\backend\Origam.Gui\EntityUIActionRunner.cs:line 193
at Origam.Server.ServerEntityUIActionRunner.PerformAppropriateAction(ExecuteActionProcessData processData) in D:\a\1\s\backend\Origam.Server\Common\ServerEntityUIActionRunner.cs:line 76
at Origam.Gui.EntityUIActionRunner.ExecuteAction(String sessionFormIdentifier, String requestingGrid, String entity, String actionType, String actionId, Hashtable parameterMappings, List`1 selectedIds, Hashtable inputParameters) in D:\a\1\s\backend\Origam.Gui\EntityUIActionRunner.cs:line 69
at Origam.Server.ServerCoreUIService.ExecuteAction(ExecuteActionInput input) in D:\a\1\s\backend\Origam.Server\ServerCoreUIService.cs:line 556
at lambda_method445(Closure, Object, Object[])
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Origam.Server.Middleware.OrigamErrorHandlingMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\backend\Origam.Server\Middleware\OrigamErrorHandlingMiddleware.cs:line 60