Null pointer exception after workflow ends

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