I dont think you need that fidelity in the exceptions. The user cares that his commit failed, and that he can write code to detect if he should just retry or give up. The high fidelity might be good for debugging, but I'm guessing there is a better way of doing that?