Try deleting the iCloud account on your phone, then signing back in. To do this, first save any photo stream photos that you want to keep to your camera roll (open your my photo stream album, tap Edit, tap the photos, tap Share, tap Save to Camera Roll). Then go to Settings>iCloud, tap Delete Account, choose Delete from My iPhone (your data will still be in iCloud), then sign back in to return your iCloud data to your phone. Then try turning Contacts to Off and choosing Keep on My iPhone again to see if the problem is resolved.
Thanks for the quick reply.
So, followed your suggestions. First thing I noticed was that after deleting data from iPhone, contacts were still on my iPhone. Not sure how to delete contacts all at once, so that's another question.
Second, I logged back in to iCloud after deleting the iCloud account as you recommended. After doing so, I turned Contacts back on ... and it started ... and asked to Merge which I did. No joy.
I did back up from MacBook Air Contacts app first, but it appears I am confused about iCloud and On My Mac.
I now show no iCloud contacts even though I've now reimported the backup contacts into my laptop's Contacts.
Unless iCloud is way way behind in syncing at the moment, I have nothing in iClould contacts now.
I can help you fix this but I'm away right now for a couple of hours. I will reply back when I return. In the meantime if you're signed Ito iCloud on your Mac and your contacts are in On My Mac, you can add the to iCloud be selecting them all and dragging and dropping them to the iCloud account. This may cause duplicates to appear on your phone but that's relatively easy to resolve. (Also On My Mac contacts are stored locally on your Mac whereas iClout contacts are stored on Apple's iCloud server.)
Thanks ... nothing has changed so far. iPhone is definitely not syncing. I've tested simple change to one contact from MacBook Air. My iPad Mini syncs and iCloud.com shows the change, but iPhone still does not sync.
A second issue has been noted and that is iTunes is not syncing Safari bookmarks indicating the iPhone stopped the sync. This led me to restore iPhone to see if that fixes everything ... will report back and update when done.
Open Contacts on your phone and tap Groups. Do you have any non-iCloud groups such as Google, Yahoo, and exchange account, On My iPhone or anything else?
Also check Settings>Mail,Contacts,Calendars. Do you have a "Default Account" setting in the Contacts section, and if so, what is it set to? (Don't post your actual email address or iCloud ID.)
Contacts on iPhone ... I don't see Groups to tap on, so I presume that means I don't have any additional non-iCloud groups defined. It simply shows All Contacts at the top of the list of contacts.
However, I think after the restore things appear to be working. A simple test with the iPhone cable connected synced. Now will test sync over WiFi (but as usual iTunes doens't always show devices listed which is frustrating).