MySQL Update Ignore not working - errors and does not update all rows
I managed to track this one down. There was a trigger on the table which was updating / inserting into another table. 

The update/insert on this trigger did NOT have an ignore and it was actually that which was throwing the key error, not the original update. 

Adding the ignore into that trigger code resolved the problem.