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


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"/>



 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.'


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


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