SCCM Connector synchronization regression in Service Manager April 2014 URs

*** UPDATE: A hotfix for this regression is now available for both SM 2012 SP1 and R2. The hotfix however is a limited distribution release for now, so you will have to create a case with support to get access to it. We intend to make this fix generally available in the coming UR in July. ***

As noted on the posts announcing the availability of UR2 and UR6 for Service Manager 2012 R2 and SP1 respectively, there is a bug which impacts SCCM connector synchronization on both versions. This blog explains the issue in some detail, and includes information on systems impacted, possible workarounds, and the expected timeline on the fix. Read on for more information.

Who’s impacted
This bug impacts only those customers who:

  1. Have malformed / incomplete software version information in their Configuration Manager database, and
  2. Use the System Center Configuration Manager connector to synchronize data between Service Manager and Configuration Manager

The bug
April 2014 URs for Service Manager included a check in SCCM connector to ensure consistency of software install counts across SM and CM. This fix included some additional logic to compare the software version information as reported by CM against the data already stored in the SM database. This was done to appropriate handle updates to the DeviceHasSoftwareItemInstalled property. However, if the version information reported by SCCM does not follow standard versioning practices the equality check fails causing SCCM connector synchronization to abort. Per our investigation this issue does not impact any other functionality in SM.

If you are impacted by this issue, SCCM connector synchronization will fail with the following error information logged to the event log.

Exception type:ArgumentException
Exception message:Version string portion was too short or too long..
StackTrace:   at System.Version.TryParseVersion(String version, VersionResult& result)

The workaround
You can get SCCM connector synchronization going again by rolling back the assembly named Microsoft.EnterpriseManagement.ServiceManager.Linking.Consumer.OperationalStore.dll to the RTM version. This workaround ensures that SCCM connector synchronization does not break without impacting any of the other fixes delivered in this UR. See table below for versioning information.

  SM 2012 SP1 SM 2012 R2
RTM Version 7.5.2905.0 7.5.3079.0
UR Version

7.5.2905.179

7.5.3079.61

Scenario 1
If you haven’t yet installed this UR, ensure that you take a backup of the existing assembly in your Service Manager install folder by copying it to a different location. Once installed, replace the new assembly installed by the UR with the previous version.

Scenario 2
If you’ve already installed the UR, and do not have access to the RTM version of the assembly, you have a couple of options:

  1. Stand up a new instance of the management server in a temporary VM and copy over the RTM version of the assembly to your production deployment, or alternatively download the evaluation VHDs
  2. Create a case with Customer Support, referencing this issue and they will make the appropriate assembly available to you

Fix availability
We have a fix for this issue in the works and expect to release it as a hotifx soon. You can either keep an eye out on this post, or follow us on Twitter @servicemanager to stay up to date on the hotfix’s availability. Additionally, the fix will be included in the next UR for SM 2012 R2.