Ur10 Pick and Place not working unknown issue

Dear reader,

When I am trying to run a pick and place code with UR10, I’m getting this error

2022-06-01 07:49:29 [Error] [asyncio] [/home/ciit_simulationisaac/.local/share/ov/pkg/isaac_sim-2021.2.1/kit/python/lib/python3.7/asyncio/base_events.py:1619] Task exception was never retrieved
future: <Task finished coro=<BaseSampleExtension._on_load_world.._on_load_world_async() done, defined at /home/ciit_simulationisaac/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/base_sample/base_sample_extension.py:161> exception=AttributeError(“‘SurfaceGripper’ object has no attribute ‘dof_indices’”)>
Traceback (most recent call last):
File “/home/ciit_simulationisaac/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/base_sample/base_sample_extension.py”, line 162, in _on_load_world_async
await self._sample.load_world_async()
File “/home/ciit_simulationisaac/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/base_sample/base_sample.py”, line 50, in load_world_async
await self.setup_post_load()
File “/home/ciit_simulationisaac/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/user_examples/hello_world.py”, line 29, in setup_post_load
gripper_dof_indices=self._universal_robots.gripper.dof_indices,
AttributeError: ‘SurfaceGripper’ object has no attribute ‘dof_indices’

My code is as follows

from omni.isaac.examples.base_sample import BaseSample
from omni.isaac.universal_robots.tasks import PickPlace
from omni.isaac.universal_robots.controllers import PickPlaceController
import numpy as np

class HelloWorld(BaseSample):
def init(self) → None:
super().init()
return

def setup_scene(self):
    world = self.get_world()
    # We add the task to the world here
    world.add_task(PickPlace(name="awesome_task"))
    return

async def setup_post_load(self):
    self._world = self.get_world()
    # The world already called the setup_scene from the task so
    # we can retrieve the task objects
    # Each defined task in the robot extensions
    # has set_params and get_params to allow for changing tasks during
    # simulation, {"task_param_name": "value": [value], "modifiable": [True/ False]}
    task_params = self._world.get_task("awesome_task").get_params()
    self._universal_robots = self._world.scene.get_object(task_params["robot_name"]["value"])
    self._cube_name = task_params["cube_name"]["value"]
    self._controller = PickPlaceController(
        name="pick_place_controller",
        gripper_dof_indices=self._universal_robots.gripper.dof_indices,
        robot_prim_path=self._universal_robots.prim_path,
    )
    self._world.add_physics_callback("sim_step", callback_fn=self.physics_step)
    await self._world.play_async()
    return

async def setup_post_reset(self):
    self._controller.reset()
    await self._world.play_async()
    return

def physics_step(self, step_size):
    # Gets all the tasks observations
    current_observations = self._world.get_observations()
    actions = self._controller.forward(
        grasping_position=current_observations[self._cube_name]["position"],
        placing_position=current_observations[self._cube_name]["target_position"],
        current_joint_positions=current_observations[self._universal_robots.name]["joint_positions"],
    )
    self._universal_robots.apply_action(actions)
    if self._controller.is_done():
        self._world.pause()
    return

Can you please help me fixing this issue?