I tried to be consistent with the other methods off `Instance` which expect a reason argument. You can see it as overkill but an `error` object can carry a lot more information than a string and can be nested. It just happen to be that we use the string representation of it.