I have two nearly identical discovery profiles, one works fine and the other returns error:
The difference between them is that the one that works is on the primary poller and the other is on our second poller, defined within <EngineId>$EngineID</EngineId> of the Discovery config.
With $EngineID =2 (our HA Orion server) or $EngineID = 3 (1st APE)
I have also just tested this against $EngineID = 4 (2nd APE), which also fails with the same error.
I found this log entry in OrionDiscoveryJob.log
2017-03-23 14:54:37,454 [STP SmartThreadPool Thread #0] ERROR OrionDiscoveryJob - Unable to deserialize job description.
System.Runtime.Serialization.SerializationException: Error in line 0 position 0. Element 'http://schemas.datacontract.org/2004/07/SolarWinds.Orion.Core.Models.Discovery:DiscoveryPluginJobDescriptionBase' contains data from a type that maps to the name 'http://schemas.solarwinds.com/2008/DeviceStudio:DeviceStudioDiscoveryPluginJobDescription'. The deserializer has no knowledge of any type that maps to this name. Consider using a DataContractResolver if you are using DataContractSerializer or add the type corresponding to 'DeviceStudioDiscoveryPluginJobDescription' to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to the serializer.
It matches time and date, but not really the problem.
Any ideas as to why, or how to fix it?
We installed APEs to take the polling load off our Orion server(s) and this is creating a backward step in automating the discovery process.