Please test after taking each of the following steps. Back up all data before you begin.
Step 1
Quit the Contacts or Address Book application if it's running.
Triple-click anywhere in the line of text below on this page to select it:
~/Library/Caches/com.apple.AddressBookSourceSync
Right-click or control-click the highlighted line and select
Services ▹ Reveal in Finder (or just Reveal)
from the contextual menu.* A folder should open with an item selected. Move the selected item to the Trash.
Repeat with this line:
~/Library/Containers/com.apple.AddressBook
*If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combination command-C. In the Finder, select
Go ▹ Go to Folder...
from the menu bar and paste into the box that opens (command-V). You won't see what you pasted because a line break is included. Press return.
Step 2
If you use iCloud, uncheck the box marked Contacts in the iCloud preference pane. Press return to confirm, or click Keep on Mac in the dialog that opens.
If you synchronize contacts with any other network service, disable that synchronization in the Internet Accounts preference pane.
Step 3
This step applies only if you can launch Contacts. From the list of groups on the left side of the Contacts window, select All On My Mac. If that group doesn't exist or is empty, skip this step. Otherwise, from the menu bar, select
File ▹ Export... ▹ Contacts Archive...
Save the exported archive to the Desktop.
Step 4
Quit Contacts if it's running. Reveal the following item in the Finder as you did in Step 1:
~/Library/Application Support/AddressBook
If you know when the problem started, and you can restore that folder from an earlier backup without losing any contacts, do so and test. Otherwise, move the folder to the Desktop, leaving the window open for now.
Step 5
Launch Contacts. Your contacts and groups will be gone. If you took Step 3, then double-click the file you created in that step and confirm that you want to import from it. Your contacts and groups will reappear.
Step 6
If you took Step 2, reverse it. Test. If the issue is resolved, delete the AddressBook folder and the archive file on the Desktop and close the open folder window.
Otherwise, quit Contacts again and put the AddressBook folder back where it was, overwriting the newer one that will have been created in its place.
Step 7
Go back to Step 3, but this time choose Export vCard... from the Export menu. Continue as in Steps 4-6. All contacts should be preserved, but you may lose some metadata such as group membership.