Summary:

When doing a GCRM sync the sync is failing with an error 400 in the logs.


Symptoms:

In the tomcat\webapps\crmj\WEB-INF\log4j.xml change the gcrm section from ERROR to DEBUG:

    <logger name="com.sage.crm.gcrm" additivity="false">

        <level value="DEBUG"/>

        <appender-ref ref="gcrm"/>

    </logger>

 

 Once you've turn on debug logging for the gcrm.log there is an error:

DEBUG [http-apr-10009-exec-3]: 05-mar-2014 17:35:58.800 Getting sync resource list, where (SYRS_UUID='7a0bd8dd-d48c-b22c-56e4-92201b3f7ee3'), count (null)
DEBUG [http-apr-10009-exec-3]: 05-mar-2014 17:35:58.800 Checking cache first...., elements found: false
DEBUG [http-apr-10009-exec-3]: 05-mar-2014 17:35:58.816 Got sync resource list - count: 2
DEBUG [http-apr-10009-exec-3]: 05-mar-2014 17:35:58.816 SyncResource by UUID - found elements:2
ERROR [http-apr-10009-exec-3]: 05-mar-2014 17:35:58.831 GCRMException caught by Global Exception Handler, Exception is....
com.sage.crm.gcrm.exception.SageGCRMException: Exception in Feed, bad payload from sync engine, with error 'Data access failure.'



Cause:

This error is caused by duplicate entries with the same UUID in the SyncResource table in Sage CRM.

Resolution:

To fix this issue you need to:

  1. Take a database backup 
  2. Stop IIS
  3. Hard delete one of each of the duplicate UUID records on the SyncResource table
  4. Restart IIS