Many issues with workflows can be resolved by apply and adhering to best practices for workflow design.
These are some best practices to utilize when building workflows and investigating issues.
If the workflow has over 150 actions, the workflow may need to be split into several workflows to improve stability at run time.
If workflow size is over the recommended size of 500KB it is recommended to split up the workflow. Workflows above 500KB will often take extensive periods of time to process, and will often lead to stability issues with the workflow at run time.
It is recommended when using actions such as "Update Item", "Create Item", "Set Item Permissions" and "Set Field Value" that a "Commit Pending Changes" action be added directly after the action to ensure that the workflow batches as expected.
Progress Data Logged in Loop
When using loops, it is recommended to avoid using a "Log to history" action inside the loop, as this can result in a massive number of entries being added to the workflow history list, which can negatively impact overall workflow performance.
Heavy use of parallel branches (10+ parallel actions) can cause issues depending on the complexity of branch logic. Consider using a serial process to execute the actions instead of doing them in parallel.
If the workflow has a recursive condition meaning that it will run, and actually set the triggers to run the workflow again, trying to create an infinite loop. Review your conditions for workflow and make sure there are none that will try to trigger the workflow.
Ensure that all branches of a State Machine have a "Switch State" action, even if the workflow needs to end.
Instead of using an "End Workflow" inside the State Machine, have the State Machine set a variable 'EndWorkflow' to true, then switch states to "End State Machine". And then use "Run If" action that checks if 'EndWorkflow' is true then "End Workflow" action will be executed.
Check to see if workflow contains hard-coded credentials that are in plain text, to secure these credentials please see how to use Workflow Constants.
If the workflow is triggered on the event receiver, it is recommended the first action be a "Pause For..." action. This will help avoid race condition errors.
Nintex Version Check
If you are currently running an older version of Nintex. We recommend upgrading to the latest version when possible to address bugs and implement new features.
Workflow Access to Lists/Libraries
Ensure that the workflow initiator has access to all lists/libraries that the workflow will interact with. This interaction may occur through actions such as "Query List", "Create Item", "Update Item" and "Delete Item".
Check Workflow History List and Task list that is used by the workflow. If they are large lists and/or contain a lot of columns it may result in issues where data is not pulled correctly.