Merging Contacts causes DB Error: Already Exists - Duplicate entry on civicrm_dashboard_contact table
I have a problem similar to this issue if I try to merge 2 contacts.
I'm using CiviCRM 5.28.3 on Wordpress.
This query:
UPDATE civicrm_dashboard_contact SET contact_id = 19296 WHERE contact_id = 19050
gives this MySQL error:
[nativecode=1062 ** Duplicate entry '1-19296' for key 'index_dashboard_id_contact_id']
Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -5
[message] => DB Error: already exists
[mode] => 16
[debug_info] => UPDATE civicrm_dashboard_contact SET contact_id = 19296 WHERE contact_id = 19050 [nativecode=1062 ** Duplicate entry '1-19296' for key 'index_dashboard_id_contact_id']
[type] => DB_Error
[user_info] => UPDATE civicrm_dashboard_contact SET contact_id = 19296 WHERE contact_id = 19050 [nativecode=1062 ** Duplicate entry '1-19296' for key 'index_dashboard_id_contact_id']
[to_string] => [db_error: message="DB Error: already exists" code=-5 mode=callback callback=CRM_Core_Error::handle prefix="" info="UPDATE civicrm_dashboard_contact SET contact_id = 19296 WHERE contact_id = 19050 [nativecode=1062 ** Duplicate entry '1-19296' for key 'index_dashboard_id_contact_id']"]
)
...
#13.. /wp-content/plugins/civicrm/civicrm/CRM/Dedupe/Merger.php(595): CRM_Core_DAO::executeQuery("UPDATE civicrm_dashboard_contact SET contact_id = 19296 WHERE contact_id = 19050", (Array:0), TRUE, NULL, TRUE)
#14 .../wp-content/plugins/civicrm/civicrm/CRM/Dedupe/Merger.php(1351): CRM_Dedupe_Merger::moveContactBelongings(Object(CRM_Dedupe_MergeHandler), (Array:9), (Array:0))
#15 .../wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Merge.php(308): CRM_Dedupe_Merger::moveAllBelongings(19296, 19050, (Array:40))