Negative values cannot happen unless they are set specifically; this is just a safeguard. Unset roles can occur if a new user is constructed and no role is assigned.