Symptoms
After move to PROD, SmartObject gives "Object reference not set to an instance of an object"
After patching up our staging server to the correct state, PandD works fine again. I packaged a solution and deployed it to production. One of the critical SmartObjects seems to be corrupted some how.
Diagnoses
The issue was caused by SharePoint List internal name is not consistent between Stage and Prod. In Prod, the list internal name has space like “Process Settings”. In Stage the internal name is “ProcessSettings”.
Resolution
Edit Service Instance and change list name to “Process Settings” instead of “ProcessSettings”. After that recreate SmartObject using existing GUID and modified the display name of the SmartObject via K2 Designer.