The simplest explanation is that the message is correct and the data changed in AX after you read the record and before you updated it. AX has to make sure that you don't intentionally overwrite changes in AX.
You should investigate this possibility before looking for other problems.