And optionally forward them to the caller instead of concealing them. Unify err and ret in a single variable.