The idea of deliver response the result of callback, callback default to identity is great, 

How about
```clj
(catch Exception e {:error e :request req})
```
?