CCF's JSON adapter exceptions are not correctly logged
Currently, those exceptions are logged as "Unhandled exception in endpoint" since they are not HTTPError instances. CCF handles those exceptions and translates them to OData errors here:
https://github.com/microsoft/CCF/blob/6f365683de8d04bc0a37c3732c1de608989fb14e/src/node/rpc/frontend.h#L606-L619
I think we should duplicate this code so that we control the HTTP response and can then log it properly.
We could wrap CCF's JSON adapter into our own JSON adapter and emit HTTPError instances, for example.
I think we want to be careful not to turn any JSON errors into 400s, but instead just the ones that come from parsing the POST body.
If we have a json parsing error somewhere else in the stack (eg. DID resolution), we should handle that there and return a different error. If we have unexpected/unhandled json errors then we should keep returning a 500 error.
The v4 adaptor supports defining error callbacks: https://github.com/microsoft/CCF/issues/5241
It's also worth noting that SCRAPI has moved to CBOR for errors (among other things): https://github.com/ietf-wg-scitt/draft-ietf-scitt-scrapi/pull/38/files
It does make sense to consistently return CBOR, rather than CBOR in the successful path, and JSON on errors, and will simplify client-writing, it is something we should consider.