MS-Exchange contacts are not synching even though mail and calendar syncs fine For a while now my contacts quit synching on Android with an Exchange 2010 server. Calendar and Mail syncing still works, both directions. This problem is described elsewhere ( e.g. here ) and I tried all the proposed fixes:


Click "sync now" in accounts, deactivate contacts, click again, re-activate contacts, click again
Check that the account is really a "Microsoft Exchange" (i.e. active sync) account, not IMAP, etc
Create a new dummy contact on phone or Outlook and sync again...
Use the Dev Tools Sync Tester on Android (always returned empty stats=[], no errors...) :-(


Versions:


Microsoft Exchange Server 2010 14.3.158.4001
Android 4.3 (Cyanogen 10.2 on Motorola Defy+)
It turned out to be a sync error for some contacts with malformed birthday field created on Android which causes exchange to silently fail.

You can debug it, by getting the Exchange server-side logs, by going to your Exchange Webmail (Outlook Web Access, OWA):


Login in to webmail.yourdomain.com
go to: Options -> All options -> Phone
mark your current device and click -> "Start Logging"
Start sync on the phone
in webmail click "Stop Logging" and look at the new mail create in your inbox


In the log I got three of these errors:

X-MS-ASError: Message = The 'Contacts::Birthday' element is invalid - The value '1979-11-24' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:dateTime' - The string '1979-11-24' is not a valid XsdDateTime value.; Severity = Error

... which causes the whole sync and all subsequent contact syncing to silently do nothing. I had to remove the birthday field from these contacts on Android.

I hope this helps someone!

Here is some more information on the various date formats created on Android devices: http://dmfs.org/carddav/?date_format