At the moment, trying to save where a circular reference exists, e.g.:
UserDto -> LoginDto -> UserDto
causes a StackOverflowException.
This is obviously a pain in the tail to debug, and not helpful or obvious for users.
What should happen is that if the differ runs into the same object again further down the hierarchy it should throw an exception indicating that a circular reference has been detected, along with details about the object that has been encountered twice.