Looked into this a bit, looks like it'll require a fair number of plumbing changes :-/
Right now, these errors are represented by a plain enum SyncerError. We could replace that by a class that, in addition to the enum, contains some optional details. But then all the places that store or set such an error will need to be updated. In particular, ModelNeutralState, GetUpdatesResponseEvent, and CommitResponseEvent store such errors. They're used in *ResponseEvent::GetDetails() (which ends up in the "Protocol Log" in sync-internals), and the ModelNeutralState members end up in "Download Step Result" etc.
Comment 1 by treib@chromium.org
, Oct 19