Coerce error message to string when setting on message

so that non-string/non-error things returned by recover are handled as well.  Without this, the `ToJson` call below explodes (sometimes).