can this be caught by something? if so, return err; makes more sense