Exception 'InvalidOperationException': The given value of type String from the data source cannot be converted to type nvarchar of the specified target column.

There is this weird error 31551 which gets logged on the Management Server. Sometimes updating to SCOM 2012 R2 UR1 helps..but the core is somewhere else.

Event looks like this:

Exception 'InvalidOperationException': The given value of type String from the data source cannot be converted to type nvarchar of the specified target column.

One or more workflows were affected by this.  

Workflow name: Microsoft.SystemCenter.DataWarehouse.CollectAlertData
Instance name: Data Warehouse Synchronization Service
Instance ID: {9A0B3744-A559-3080-EA82-D22638DAC93D}
Management group:

Therefore, no alerts are shown in reports.

In the SQL Profiler Trace you can see the BulkInsert taking place, but you cannot really find the one which gets the alert because it`s a cast exception on the SQL Server.

So after taking an IDNA Trace on the MonitoringHostProcess which runs under the Datawarehouse writer account (you can see that in procmon) we can see the

CLR exception type: System.InvalidOperationException

    "The given value of type String from the data source cannot be converted to type nvarchar of the specified target column."

is determined by

0000000180476268 (System.String) Length=303, String="NetApp - At least one volume that was full or nearly full is now OK,

            but more volumes still exceed the volumeNearlyFull or

            volumeFull thresholds. This trap is generally sent within

            a short time of when a volume becomes OK, though if two

            volumes become"

OpsMgr AlertName only supports 255 char length and the NetApp MP is trying to insert alerts with 303 char in this case.

ACTION PLAN:
=============
Remove the NetApp MP and follow-up with vendor.