No, there's not enough info in the error to say whether the hash mismatch came from the initial diff-based update, or the full binary update. That's the bit I want to distinguish between.

Suppose I want to store this on a web service in a somewhat structured form, indicating what kind of error happened, and at what part of the update process it occurred. Should I create a custom error struct that holds the details I need?