I have encountered a strange error…
In a UDA, using the Call Web Service action with the method “StartWorkflowOnList”, I have found that if the UDA is invoked quickly in succession on the same Workflow Item, it can throw the following error:
<soap:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode>soap:Server</faultcode> <faultstring>Server was unable to process request. ---> Attempted to use an object that has ceased to exist. (Exception from HRESULT: 0x80030102 (STG_E_REVERTED)) ---> Attempted to use an object that has ceased to exist. (Exception from HRESULT: 0x80030102 (STG_E_REVERTED))</faultstring> <detail /> </soap:Fault>
All signs point to this being a problem of how the actual backing .Net code for this action are implementing their releasing of SharePoint Objects, and seems to be unfixable from a user perspective.
One of the strange things about this error however is that the actual method (StartWorkflowOnList) still seems to succeed, meaning that you up with an Error that doesn't actually indicate a proper failure to execute the request!
Though I am tentatively going to ignore this particular error now (because there doesn't seem to be a reason not too, and to prevent my UDA from executing the same request more than once when it doesn't need to), I wanted to make a post about this in the event that someone else runs into the same issue. I'll also be opening a ticket with Nintex in the hopes of having them review their code for a fix / update.
Additional Information:
- https://sharepoint.stackexchange.com/questions/196939/system-runtime-interopservices-comexception-while-adding-web-part-to-page
- https://theroks.com/solving-attempted-to-use-an-object-that-has-ceased-to-exist/
- http://www.sharepointfix.com/2008/12/best-practices-disposing-sharepoint.html