Error chaining should be improved
when returning errors:
- sometimes the message replacement is lost, and the message returned to users comes with placeholders;
- too many loops. If the error is already handled, it just be returned more prompty
when returning errors: