A workflow that unloads when a delay activity is triggered does not resume automatically even after the scheduled time has lapsed in Microsoft Windows SharePoint Services 3.0. The status of the workflow that is displayed on the SharePoint Services workflow status page remains “In Progress."
This issue may occur because of the following causes:
The hotfix that is described in Microsoft Knowledge Base article 932394 is not installed on the computer.
A workflow sometimes unloads before a timer event is scheduled to resume the workflow. If a timer event is not scheduled, the workflow will never resume.
An issue occurs with the SharePoint Timer service. You can verify the issue by testing other Timer service functionality. For example, test incoming e-mail to create a list item.
The SharePoint timer is not configured to run at the correct time. Delay activity in workflows is processed by the SharePoint Timer service, and workflows resume according to the schedule of the workflow timer job. By default, the timer job is configured to run every 5 minutes. For example, workflows that are configured to resume in 5 minutes may resume after 9 minutes and 59 seconds.
The workflow assembly in the Global Assembly Cache (GAC) is overwritten. This issue occurs when you update the workflow assembly, and you overwrite an existing workflow assembly. In this case, the Timer process uses the old version of the workflow definition. The workflow does not resume because the old version of the workflow assembly is overwritten, and it no longer exists.
Typically, workflow in the GAC is overwritten in the following circumstances:
You use the GACUtil tool to copy the assembly.
You manually copy the assembly by using Windows Explorer.
You use the Visual Studio Tools for the Microsoft Office System (VSTO) workflow deployment function that is included in Microsoft Visual Studio 2008.
The status of the workflow that is displayed in SharePoint Services remains “In Progress” even though the workflow does not resume.
Workflows contain loops that never stop. For example, workflows may contain While loops that do not increment their counters.
Replicator activities in the workflow do not have the InitialChildData property set.
Resolution for Cause 1
To resolve this issue, follow these steps:
Install the hotfix that is described in the following Microsoft Knowledge Base article:
932394 A timer does not resume operation after a workflow is reloaded in Microsoft Windows Workflow Foundation
Or, you can install the Microsoft .NET Framework 3 Service Pack 1 (SP1) or the .NET Framework 3.5. For more information about the .NET Framework 3 SP1, visit the following Microsoft Web site:
Install the Windows SharePoint Services 3.0 update that is described in the following Microsoft Knowledge Base article:
953749 Issues that are fixed in Windows SharePoint Services 3.0 by the Windows SharePoint Services 3.0 Infrastructure Update
The Windows SharePoint Services 3.0 Infrastructure Update resolves this issue by scheduling a timer event.
Resolution for Cause 3
You can use the following methods to troubleshoot issues that are related to the Timer service:
Restart the SharePoint Timer service.
Use the Task monitor (Taskmon.exe) program to verify that the SharePoint Timer service (Owstimer.exe) is running.
Verify that the Unified Logging Service (ULS) log files contain Timer service error entries, and then troubleshoot the issue accordingly.
Make sure that the antivirus program is not causing the Timer service issues.
For more information about antivirus scanning in Windows SharePoint Services 3.0 and in Office SharePoint Server 2007, click the following article number to view the article in the Microsoft Knowledge Base:
952167 Folders may have to be excluded from antivirus scanning when you use a file-level antivirus program in Windows SharePoint Services 3.0 or in SharePoint Server 2007
Resolution for Cause 4
To work around this issue, run the following command to set the correct interval for the workflow timer job, and then restart the SharePoint Timer service:
Stsadm –o setproperty –pn job-workflow –pv interval for running the workflow timer job
Resolution for Cause 5
Restart the SharePoint Timer service.
Note This resolution applies to only newly created workflow instances. It cannot correct the existing workflow instances that are already affected. You can use a version number for each assembly that is created to track the new and old workflow instances.
Resolution for Cause 6
Verify the Unified Logging Service (ULS) log files for error messages, and then resolve the issue accordingly. Typically, this issue occurs if the workflow does not handle an exception and crashes.
Resolution for Cause 7
Verify loop construct issues in workflow definitions. Make sure that the InitialChildData property on Replicator activities is bound to a data object.