Symptoms
When deploying a list template to a SharePoint 2013 environment containing a lookup column, and then trying to create a SmartObject for a list in the K2 for SharePoint 2013 app, the below error occurs. The list does in fact exist on the site itself, regardless of what the error says.
List does not exist. The page you selected contains a list that does not exist. It may have been deleted by another user.
•Type: SourceCode.SmartObjects.Client.SmartObjectException
•Source: SourceCode.SmartObjects.Client
•Method Base
?Member Type: Method
?Name: ExecuteScalar
?Module
?Scope Name: SourceCode.SmartObjects.Client.dll
?Declaring Type
?Full Name: SourceCode.SmartObjects.Client.SmartObjectClientServer
•Stack Trace:
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteScalar(SmartObject smartObject, DataTable inputTable)
at SourceCode.Forms.AppFramework.FormRuntime.SmartObjectExecution(XPathNavigator nav, Boolean outputDependencies,
SmartObjectClientServer svr)
at SourceCode.Forms.AppFramework.FormRuntime.WorkXmlToApi(String xml)
at SourceCode.Forms.Runtime.AJAXCall.ProcessRequest(HttpContext context)
Diagnoses
This is found to be a problem with the way the lookup column in the list template is configured. When the list template is created, it takes the current configuration of the list and all columns therein. Sometimes, when restoring the list template to another environment, the lookup column may no longer have reference to the location it is supposed to be looking up. When K2 is then trying to work with the column, the error stated previously occurs as it cannot work with the definition of the lookup column that exists in the template.
Resolution
This is a SharePoint column configuration issue and not a K2 issue.
When you deploy the list template to a new server, the GUID’s change in SharePoint for the lists/libraries/columns, so the lookup column in the template is pointing to the old GUID from the source environment which doesn’t exist on the new server.
SharePoint does not provide a way to fix this other than hacking the STP file itself. A workaround (if you do not need to port data over between environments) would be to delete the lookup column causing the problem and then re-add it with the correct configuration if needed before appifying the list or library with the K2 App.