The expected behavior is a succeeded insert.
See commits aa8a31da (Bug #22990029 GCOLS: INCORRECT BEHAVIOR AFTER DATA INSERTED WITH IGNORE KEYWORD) and 64678c (Bug #22990029: Add a test case).
That fix is better than incorrect behavior, but the expected behavior is to make an insert.
The insert is truing to delete-unmark the record and for that it needed to recompute the value for the deleted record, which was inserted with IGNORE flag. The correct way would be to set the correcvt sql_mode and thd->abort_on_warning values for that recomputation, so that it always succeeds.
MDEV-29299 where the case can be also affected