Isaac Sim hangs indefinitely when calling navmesh.query_shortest_path() during character command generation

Environment

  • Isaac Sim Version: 4.5.0
  • OS: Ubuntu 22.04
  • Hardware: NVIDIA RTX 4090
  • Python: 3.10

Problem Description

I’m generating social navigation datasets using Isaac Sim’s NavMesh and Character Randomizer. The script hangs indefinitely when calling navmesh.query_shortest_path() inside the GoTo.get_parameters() method during character command generation.

Expected Behavior

The query_shortest_path() call should either:

  1. Return a valid path object if reachable
  2. Return None if unreachable
  3. Complete within a reasonable timeout (< 1 second per call)

Actual Behavior

The script hangs forever at query_shortest_path() with no error message, CPU/GPU utilization stays low, and the process never recovers.

Reproduction Steps

1. Scene Setup

# Load scene and bake NavMesh
StageUtil.open_stage("my_scene.usd")

# Configure NavMesh
settings = carb.settings.get_settings()
settings.set(NavMeshSettings.AGENT_HEIGHT_SETTING_PATH, 180)
settings.set(NavMeshSettings.AGENT_RADIUS_SETTING_PATH, 50)

# Bake NavMesh
_inav = nav.acquire_interface()
_inav.start_navmesh_baking()
# ... wait for baking to complete ...
navmesh = _inav.get_navmesh()

2. Character Command Generation

# Generate 8 characters at random positions
character_positions = {}  # {char_name: Gf.Vec3d(...)}
for i in range(8):
    char_name = f"Character_{i}"
    pos = navmesh.query_random_point(char_name)
    character_positions[char_name] = Gf.Vec3d(pos[0], pos[1], pos[2])

# Generate commands using CharacterRandomizer
randomizer = CharacterRandomizer(seed=42)
randomizer.navmesh = navmesh
commands = randomizer.generate_commands(
    global_seed=42,
    duration=30.0,
    agent_list=character_positions
)

3. The Hang Location

Inside character_randomizer.pyGoTo.get_parameters():

class GoTo(Command):
    def get_parameters(self):
        distance = np.random.uniform(5, 20)
        agent_pos = self.agent_list[self.agent]  # Gf.Vec3d
        
        # Generate target point
        loc_offset = RandomizerUtil.decompose_distance(distance)
        target_point = CarbUtil.add3(agent_pos, loc_offset)
        closest_point = self.navmesh.query_closest_point(target_point)
        
        # ⚠️ THIS CALL HANGS INDEFINITELY
        path = self.navmesh.query_shortest_path(agent_pos, closest_point)
        # Never returns, no error, no timeout

Additional Context

What I’ve Tried

  1. NavMesh is valid: navmesh.query_random_point() works fine
  2. Points are on NavMesh: query_closest_point() returns valid results
  3. Tried different seeds: Problem persists across different random seeds
  4. No timeout mechanism: The call never returns or throws an exception
  5. Reduced character count: Hangs even with 1-2 characters

Workarounds Attempted

  • Skip path validation: Remove query_shortest_path() call entirely → Commands generate but paths may be unreachable
  • Pre-generate target pool: Generate all GoTo targets upfront → Still hangs during pre-generation phase
  • Increase NavMesh resolution: No effect

Related Code Locations

The issue occurs in:

/isaac-sim/extscache/isaacsim.replicator.agent.core-0.5.14+106.5.0/
  isaacsim/replicator/agent/core/randomization/character_randomizer.py

Questions

  1. Is there a known issue with query_shortest_path() hanging in Isaac Sim 4.5?
  2. Are there recommended timeout mechanisms or async alternatives?
  3. Should we avoid calling query_shortest_path() in batch character generation?
  4. Is there a maximum number of path queries that should be made?

Any guidance would be greatly appreciated. This is blocking our dataset generation pipeline.

Logs

No error messages are produced. The last console output before hanging:

DEBUG: Starting command generation loop (target duration: 30.0)...
  --- Command #2 for agent Character ---
  Current time: 2.11/30.0
  Getting transition probabilities from 'LookAround'...
  Transition probs: [0.7 0.3 0. ]
  Sampling new command index...
  New command index: 0 ('GoTo')
  Creating new command...
  New command created: <class '...GoTo'>
  New command duration: 12.13
  Getting command text...
[HANGS HERE - NO FURTHER OUTPUT]

Thank you for any help!

To keep the discussion and updates in one place, we will close this thread as a duplicate of Isaac Sim hangs indefinitely when calling navmesh.query_shortest_path() during character command generation · Issue #424 · isaac-sim/IsaacSim · GitHub.