should we use foreman exceptions here? I think its better as you'll get an error code (and translated string potentially)