Don't `throw` in lib/messages.addError; sentinel goes into restart loop.

Instead respond with an error message and add errors to the doc.