When running a ServiceDesk or Workflow project you encounter errors in the log for the project similiar to the one below.
User Search failed with the following: Could not read in object System.Exception: Could not read in object --->
LogicBase.Framework.ObjectDeserializationError: could not deserialize: System.Collections.ArrayList --->
System.Exception: could not find type SD.Components.NotificationServer7Reports.GetAllLocationsComponent
at LogicBase.Framework.ArrayListTypeConverter.GetObject(ObjectStorageContainer storageContainer, ObjectStorageObjectData values, Type valueType, ObjectStorageErrorHandler errorHandler)
at LogicBase.Framework.ObjectReadStream.ReadRelationshipConverter(ObjectStorageValue objValue, Type type, ObjectStorageRelationshipTypeConverter converter)
Workflow Solution 7.x, 8.x
This error is caused by the project in question referencing a datatype that cannot be found in the referenced class library.
In the example provided, the datatype that cannot be found is SD.Components.NotificationServer7Reports.GetAllLocationsComponent.
The error can be caused by a few different things ranging from corruption of the referenced library to unintended side effects of modifying a custom library.
Resolution of this issue will vary depending on whether the referenced library is an out of the box library or a custom library created through the Integration Component generator or some other means.
If the referenced library is an out of the box component, this issue can be resolved by running an Upgrade install or a repair install.
Note: Upgrade install is an option for Workflow Solution. During the Upgrade install Workflow will prompt you to upgrade any libraries or projects it determines are not the proper version.
If the referenced library is a custom library, you will either need to revert the custom library to a prior version or rebuild the library.