if `err.errmsg` exists, will `err` be an Error object? if not, we should make sure we pass an error back too.