Bug report
Describe the bug
This is not a bug, but a feature request. I personally find stateful way ClientError is stored a bit strage.
(1) Consumption of func Xyz() (result, error) is much more natural for most Go callers.
(2) Modification to ClientError makes the client not concurrent-safe (along with modification to transport.header)