Since we know exactly what reference was the problem, and what the underlying RefUpdate.Result was at the time we create this exception, should we expose those as fields so the caller can inspect the failure if they care to know?  And if they don't then they can just rely on the message string.

Or maybe exposing that is too much information.  I don't really know.