SharePoint Workflow Auto Cleanup

I am not sure if this blog is really needed/helpful for someone or not, but we keep getting cases about workflow tasks being deleted, vanished, or deleted. Also, workflow status is gone!

 

For SharePoint 2010 workflows (on SharePoint 2010/2013/2016)

Firstly, you should have known that we have SharePoint 2010 workflows on SharePoint 2013 and SharePoint 2016 which run by the SharePoint timer job and not handled by the fancy workflow manager. If you are still not sure what I am talking about, check the below screenshot from SharePoint 2013 site.

What may happen that suddenly you will find that the completed/cancelled workflow instances are gone. In other words, you will find the workflow status column is empty as shown below:

If you are sure that the workflow status was there, then this has been certainly deleted by the timer job Workflow Auto Cleanup. The job runs daily to permanently deletes workflow instancesand related tasksthat still exist 60 days (default value) after a workflow is completed or canceled. Workflow history items themselves are not deleted, but the entry point to view them on the status page for a particular instance of a workflow will no longer be available, as shown above. Therefore, if you access the workflow history list, you will find your workflow history records there, but bear in mind that the workflow history list is hidden; so, you have to access it by a direct URL.

 

If needed, you can disable the Workflow Auto Cleanup job, if you want to keep workflow data available longer. However, this is not recommended, as with any SharePoint list, as the workflow history and task lists grow in size, site performance may be compromised. If you are concerned about the size of these lists, keep the Workflow Auto Cleanup job enabled.

Reference: https://technet.microsoft.com/en-us/library/ee662522(v=office.14).aspx

 

Disabling this timer job is not the only solution here, as you can increase the workflow instances/tasks retention by increasing the property SPWorkflowAssociation.AutoCleanupDays. The complete script can be found here https://blogs.msdn.microsoft.com/nishand/2007/09/11/changing-the-spworkflowassociation-autocleanupdays-property/

 

SharePoint 2013 Workflows

The situation for SharePoint 2013 workflows is different, as the workflow instances exist on the workflow manager database not on the SharePoint content database. Therefore, the timer job "Workflow Auto Cleanup" won't delete the workflow instances, but the workflow manager will :). How will this happen? And what's the retention for this?

 

Actually, my colleague Felipe documented this here https://blogs.msdn.microsoft.com/feseca/2014/11/13/how-to-modify-retention-duration-for-workflow-instances-completed-in-workflow-manager/; so, for SharePoint 2013 workflows you should consider both settings: Workflow Manager setting, and the Workflow Auto Cleanup timer job. The workflow instances deletion will be done by the Workflow Manager from the workflow manager database, and the workflow status link on SharePoint will be deleted by the timer job.