added missing yield for user_data