Skip to main content
Nintex Community Menu Bar

Problem:


After applying the December 2022 SharePoint Cumulative Update (CU), workflows running on the SharePoint Timer Service fail and/or do not progress further. Workflows will run on the SharePoint Timer Service following certain circumstances such as scheduled workflows, Pause For, Pause Until, and Change State (inside a State Machine). This applies to SharePoint 2013, 2016, and 2019.

 

The most common error that may appear in the ULS logs is:

Engine RunWorkflow: System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException: The workflow failed validation.    
 at System.Workflow.Runtime.WorkflowDefinitionDispenser.ValidateDefinition(Activity root, Boolean isNewType, ITypeProvider typeProvider)   

 

 

Resolution:


Remove authorized types from OWSTIMER.EXE.CONFIG entries from each SharePoint server. The OWSTIMER.EXE.CONFIG is located in the following locations:

 

SharePoint 2013

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\BIN\OWSTIMER.EXE.CONFIG

 

SharePoint 2016 and Sharepoint 2019

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\BIN\OWSTIMER.EXE.CONFIG

 

  1. Navigate to the file path where the OWSTIMER.EXE.CONFIG file is located.
  2. Backup the OWSTIMER.EXE.CONFIG by creating a copy and giving the copied file a .bak extension (in case the changes need to be reverted)
  3. Edit the OWSTIMER.EXE.CONFIG file with Notepad.
  4. Delete the following node (and all content within this node) from the file.
    <System.Workflow.ComponentModel.WorkflowCompiler>
    .
    .
    .
    </System.Workflow.ComponentModel.WorkflowCompiler>
  5. Save the modified OWSTIMER.EXE.CONFIG file.
  6. Restart the SharePoint Timer Service on each server where this change is made.

 

Note: 

 

OWSTIMER.EXE.CONFIG is not manipulated or controlled by Nintex and any fixes have been applied to the web.config. Recommendation would be to remove all the authorized types from the OWSTimer.config & have them all defined in your web.config to prevent syncing issues, as described below. However, if you would like to maintain them in the OWSTimer.config, you would need to update the missing authorized type entries from your web.config manually.

Be the first to reply!

Reply