Wednesday, October 12, 2011

SharePoint 2010 SP1 and June CU Upgrade issue #5 - Previous “In Progress” approval workflows could not be approved after upgrade

After SharePoint 2010 upgrade to SP1 + June CU, we have identified none of the out of box approval workflows in “In Progress” status BEFORE the upgrade could not be approved. Any actions linked to the tasks such as approve will cause server error as in the screen shot.

The server error to approve is:

The error when to approve the "In Progress" workflow after SP1 + June CU upgrade is:
10/12/2011 15:57:28.72 w3wp.exe (0x21B4) 0x0F1C  SharePoint Foundation Runtime tkau   Unexpected  Microsoft.SharePoint.SPException: This task is currently locked by a running workflow and cannot be edited.    at Microsoft.SharePoint.SPListItem.PrepareItemForUpdate(SPWeb web, Boolean bMigration, Boolean& bAdd, Boolean& bPublish, Object& objAttachmentNames, Object& objAttachmentContents, Int32& parentFolderId)     at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents, String filename)     at Microsoft.SharePoint.SPListItem.Update()     at Microsoft.SharePoint.Workflow.SPWorkflowTask.AlterTask(SPListItem task, Hashtable htData, Boolean fSynchronous)     at Microsoft.Office.Workflow.WrkTaskIPPage.XmlFormCont...       9f148c32-5a87-4dcb-829f-ec115a04630b

The server error to change the approval is:

Engine RunWorkflow: System.Workflow.Activities.EventDeliveryFailedException: Event "OnWorkflowModified" on interface type "Microsoft.SharePoint.Workflow.IWorkflowModificationService" for instance id "99cafa83-54a4-443f-815c-d5a10bfb4d9c" cannot be delivered. ---> System.Runtime.Serialization.SerializationException: The object with ID 501 implements the IObjectReference interface for which all dependencies cannot be resolved. The likely cause is two instances of IObjectReference that have a mutual dependency on each other.     at System.Runtime.Serialization.ObjectManager.GetCompletionInfo(FixupHolder fixup, ObjectHolder& holder, Object& member, Boolean bThrowIfMissing)     at System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)     at...  ac48e2b0-55ee-4241-b9c3-9cf0aeb01c2b

We have noticed some other people also noticed this issue. The workaround seems to terminate the workflow and restart it again manually. Since there are over 1500 "In Progress" workflows in production at this time, we are thinking to use API to reset workflow locker automatically similar to the suggestion published before. This may require some additional research before final solution.

This has been reproduced from Microsoft side and cases submitted.

If anyone has better solution, please let us know.

1 comment:

  1. Hi Harry , we are facing the same issue . Have you found any solution ??