Reporting it as it just occurred on my live site...
UPDATE `core_members_known_ip_addresses` `core_members_known_ip_addresses` SET `ip_address`='' WHERE ip_address != '' AND last_seen <1709136738
IPS\Db\Exception: Duplicate entry '0138fdaa72c8135e62b3487f5be7b11d-2970-' for key 'PRIMARY' (1062)
#0 /home/fbaeefdf/live.ynwa.tv/system/Db/Db.php(1159): IPS\_Db->preparedQuery()
#1 /home/fbaeefdf/live.ynwa.tv/applications/core/extensions/core/IpAddresses/Logins.php(33): IPS\_Db->update()
#2 /home/fbaeefdf/live.ynwa.tv/system/Member/Member.php(6504): IPS\core\extensions\core\IpAddresses\_Logins->pruneIpAddresses()
#3 /home/fbaeefdf/live.ynwa.tv/applications/core/tasks/pruneipaddresses.php(43): IPS\_Member::pruneAllLoggedIpAddresses()
#4 /home/fbaeefdf/live.ynwa.tv/system/Task/Task.php(281): IPS\core\tasks\_pruneipaddresses->execute()
#5 /home/fbaeefdf/live.ynwa.tv/applications/core/modules/admin/settings/advanced.php(751): IPS\_Task->run()
#6 /home/fbaeefdf/live.ynwa.tv/system/Dispatcher/Controller.php(107): IPS\core\modules\admin\settings\_advanced->runTask()
#7 /home/fbaeefdf/live.ynwa.tv/applications/core/modules/admin/settings/advanced.php(38): IPS\Dispatcher\_Controller->execute()
#8 /home/fbaeefdf/live.ynwa.tv/system/Dispatcher/Dispatcher.php(153): IPS\core\modules\admin\settings\_advanced->execute()
#9 /home/fbaeefdf/live.ynwa.tv/admin/index.php(13): IPS\_Dispatcher->run()
#10 {main}
I believe this is a knock-on effect of it NOT having been pruning the IP addresses correctly previously - the issue you'll have is that there could be multiple entries for a specific device_key and member_id, but with different IP addresses. Now that task has been fixed to do the pruning, when it tries to remove the IP address on those multiple entries, the PRIMARY key for each row will end up being the same as the key is made up of device_key, member_id, IP address (which is now blank)
Sample content attached:core_members_known_ip_addresses.sql
When the query in the task runs against that data, the error occurs:
UPDATE `core_members_known_ip_addresses` `core_members_known_ip_addresses` SET `ip_address`='' WHERE ip_address != '' AND last_seen <1709135288