So, I can't delete or update contributions from CiviCRM 5.13 or 5.15, either through the UI or the API (v3).
This is the backtrace:
{
"error_code": "already exists",
"sql": "DELETE FROM civicrm_activity WHERE source_record_id IN (78772) AND activity_type_id IN ( 6 ) [nativecode=1062 ** Duplicate entry '78823' for key 'id']",
"trace": "#0 /var/www/html/dc/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::exceptionHandler(Object(DB_Error))\n#1 /var/www/html/dc/sites/all/modules/civicrm/packages/DB.php(985): PEAR_Error->__construct('DB Error: alrea...', -5, 16, Array, 'DELETE FROM civ...')\n#2 /var/www/html/dc/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-5, 16, Array, 'DELETE FROM civ...')\n#3 /var/www/html/dc/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -5, 16, Array, 'DELETE FROM civ...', 'DB_Error', true)\n#4 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->__call('raiseError', Array)\n#5 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-5, NULL, NULL, 'DELETE FROM civ...', '1062 ** Duplica...')\n#6 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()\n#7 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery('DELETE FROM civ...')\n#8 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/DataObject.php(2415): DB_common->query('DELETE FROM civ...')\n#9 /var/www/html/dc/sites/all/modules/civicrm/packages/DB/DataObject.php(1607): DB_DataObject->_query('DELETE FROM civ...')\n#10 /var/www/html/dc/sites/all/modules/civicrm/CRM/Core/DAO.php(439): DB_DataObject->query('DELETE FROM civ...')\n#11 /var/www/html/dc/sites/all/modules/civicrm/CRM/Core/DAO.php(1414): CRM_Core_DAO->query('DELETE FROM civ...', true)\n#12 /var/www/html/dc/sites/all/modules/civicrm/CRM/Activity/BAO/Activity.php(186): CRM_Core_DAO::executeQuery('DELETE FROM civ...')\n#13 /var/www/html/dc/sites/all/modules/civicrm/CRM/Contribute/BAO/Contribution.php(1322): CRM_Activity_BAO_Activity::deleteActivity(Array)\n#14 /var/www/html/dc/sites/all/modules/civicrm/api/v3/Contribution.php(234): CRM_Contribute_BAO_Contribution::deleteContribution(78772)\n#15 /var/www/html/dc/sites/all/modules/civicrm/Civi/API/Provider/MagicFunctionProvider.php(101): civicrm_api3_contribution_delete(Array)\n#16 /var/www/html/dc/sites/all/modules/civicrm/Civi/API/Kernel.php(168): Civi\\API\\Provider\\MagicFunctionProvider->invoke(Array)\n#17 /var/www/html/dc/sites/all/modules/civicrm/Civi/API/Kernel.php(99): Civi\\API\\Kernel->runRequest(Array)\n#18 /var/www/html/dc/sites/all/modules/civicrm/api/api.php(23): Civi\\API\\Kernel->runSafe('Contribution', 'delete', Array, NULL)\n#19 /var/www/html/dc/sites/all/modules/civicrm/CRM/Utils/REST.php(316): civicrm_api('Contribution', 'delete', Array)\n#20 /var/www/html/dc/sites/all/modules/civicrm/CRM/Utils/REST.php(566): CRM_Utils_REST::process(Array, Array)\n#21 /var/www/html/dc/sites/all/modules/civicrm/CRM/Core/Invoke.php(277): CRM_Utils_REST::ajax()\n#22 /var/www/html/dc/sites/all/modules/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem(Array)\n#23 /var/www/html/dc/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke(Array)\n#24 /var/www/html/dc/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke(Array)\n#25 /var/www/html/dc/includes/menu.inc(527): civicrm_invoke('ajax', 'rest')\n#26 /var/www/html/dc/index.php(21): menu_execute_active_handler()\n#27 {main}",
"is_error": 1,
"error_message": "DB Error: already exists",
"debug_information": "DELETE FROM civicrm_activity WHERE source_record_id IN (78772) AND activity_type_id IN ( 6 ) [nativecode=1062 ** Duplicate entry '78823' for key 'id']"
}
Running the same SQL query mentioned in the backtrace in phpMyAdmin returns a single record (not sure why it's returning a Duplicate entry error in the backtrace).
I've got a backup of the same system running on version 5.11, separately but on the same server, which is completely fine - no issues at all. Tried turning off various extensions but to no avail. Fairly sure that it's to do with the server configuration, but really struggling to pin down where the issue lies.
Any advice would be very welcome. Thanks.