Workflows will fail to update a Person or Group column after applying the October CU for WSS 3.0. The December Uber update causes this issue, as well.
Workflow status error: "Error Occurred" and "Error updating a list item"
w3wp.exe (0x0C1C) 0x0900 Windows SharePoint Services General 75yj Medium Error in resolving user 'domain\user' : System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.Utilities.SPActiveDirectoryPrincipalBySIDResolver.ResolvePrincipal(String input, Boolean inputIsEmailOnly, SPPrincipalType scopes, SPPrincipalSource sources, SPUserCollection usersContainer) at Microsoft.SharePoint.Utilities.SPUtility.ResolveWindowsPrincipal(SPWebApplication webApp, String input, SPPrincipalType scopes, Boolean inputIsEmailOnly).
w3wp.exe (0x0E00) 0x0B00 Windows SharePoint Services Workflow Infrastructure 72er Medium Microsoft.SharePoint.SPException: Invalid data has been used to update the list item. The field you are trying to update may be read only. ---> System.Runtime.InteropServices.COMException (0x80020005): Invalid data has been used to update the list item. The field you are trying to update may be read only. at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish) at Microsoft.SharePoint.Librar..
===== ULS LOG (partial) =====
Regression introduced by the October CU for WSS 3.0.
1. Install Windows SharePoint Services February Cumulative Update: http://support.microsoft.com/kb/961750.
If you are unable to install the SharePoint February CU, then here is a workaround:
- Create a string variable in the workflow, and call it UserID.
- Add the workflow action "Set Workflow Variable". Set the UserID variable to whatever user type column you are interested in (example: "Created By").
- Add the workflow action "Build Dynamic String". In the dynamic string dialog, type "-1;#" (without quotes). Then, click "Add Lookup" to the workflow variable UserID. Click OK.
- Still on the build a dynamic string action, set the variable to store in as UserID.
- Change the workflow action to use the variable UserID when updating or setting the Person or Group type field.
NOTE: the same workaround works for FBA (forms based authentication) providers, as well.