Hmmm... While I don't like the thought of errors being masked, I can see how this middleware might be useful (if care was taken to report exceptions some other way). Since each client endpoint needs to construct a default response when invoking the request, this only saves a few lines and might obscure what's really going on. If I wanted to instrument my client in a way that would be useful for production (network, transport and response errors all instrumented distinctly), I might not use this... but then again I could always instrument using middleware further up the stack.

I'm not for or against it, really. Seems useful in the right hands.