the error handling of result locations is a bit awkward but it should basically be the same everywhere