I2C problem. TWI driver sends wrong I2C data first time after having received no ACK.

I run my code on a ADSP-SC573 EZ-kit.

I have connected an I2C memory (M24M02-DR) to the TWI bus.

I repeat the following code when the memory is busy (while the memory is busy it does not ACK). The code I made to illustrate the problem. The adi_twi_SetHardwareAddress() is already called.

  uint8_t a[] = {0x12, 0x34};

  if (adi_twi_Write(hDevice, a, sizeof(a), true))
  {
    // I2C error
    return false;
  }

  if (adi_twi_Read(hDevice, data, length, false))
  {
    // I2C error
    return false;
  }

When I look in my logic analyzer I see that the TWI driver sends the wrong data 0x12 0x12 instead of 0x12 0x23 (underlined in red in the picture), and then sends the correct data 0x12 0x23 (underlined in green in the picture). The arrow points where the memory ACK's the message first time after it is not busy anymore.

A closeup on the faulty data:

Could someone explain why this is happening?