Symptoms
We deployed a new K2 SmartForms and SharePoint solution yesterday. We encountered the following problem:
All the new process instances are in error. We tried several times to restart them without success. We did not encounter this problem on our Qualification environment.
Here is the error message we have in error profiles on K2 Workspace:
Message: Exception has been thrown by the target of an invocation. ServiceName: DynamicWCFService ServiceGuid: 6f851e68-0a68-41e8-88f9-82a4a0e85d9e InnerExceptionMessage:
We have restored the VM snapshots but not the databases backups. The problem is still there.
We checked also the configuration with our partner that deployed this new version and tried to deploy the solutions several times with success.
Diagnoses
It turns out they have a custom web service based on the Dynamic WCF web service that can be downloaded from K2 community marketplace. They didn't have a way to test their web service (using a custom app) and so because of the intricate nature of how the web service is linked to a SQL query that returns a value from a SharePoint list which should be used in a K2 Workflow, some error occurred somewhere and it was pretty generic.
Resolution
Finally we are still using the Dynamic WCF Service.
Here are the steps we did with the K2 consultant to solve the problem:
1) We showed him how the application works as we did with K2 support on Friday.
2) We had a look at the xml code of the custom SmartObject PDOC_Users that threw the exception (using K2 service tester)
3) We opened the source code with visual studio
4) The K2 consultant noticed that there was a difference between the source code and the xml version of the SmartObject
5) He refreshed the SmartObject in the service tester (Dev environment) and got the same error as in production
4) He developed a small app to test the Web service
5) We deployed and tested it on the production environment
6) We had a detailed stack trace of the exception showing that the SharePoint list "External Users" did not exist.
7) We updated the SmartObject and deployed it on production.
We refreshed the SmartObject with the K2 Service tester and tested it successfully!
If you need more details, please let me know.
The K2 consultant recommended we should restart the K2 service or refresh all the K2 objects after each deployment.