fix(errors): use the correct context for error messages

Fixes #1660.

This issue occurred because the context of an error was being discarded as the error was rethrown in the form submission handler. Rather than depend on error context being passed around, we store it on individual error objects.