Use `LegacyThrow` instead of `MCeerror->add` as otherwise `ctxt . HasError()` never returns true - you need to call either `Throw()` or `LegacyThrow()` to bring an error up to the caller.