[humble python fleet adapter]: update_inserter did not get called after add_robot (#659)

Posted by @cwrx777:

Hi,

We are using humble python fleet adapter.

We have more than 30 robots in a fleet, but for some (8) robots in the fleet, the _updater_inserter didn’t get called.
We have confirmed for all affected robots, the StartSet can be computed, charger waypoints are correct, and RobotCommandHandle object is initialized.
For the affected robots, Added a robot named [] with participant ID [] didn’t get printed out. We didnt see any other error.

In rmf_traffic_schedule node, i can see Registered participant [] named [] owned by [] for all robots in the fleet, including the affected robots.

What could be the possible cause of this issue?

Is it safe to call add_robot again for the same robot, using the existing (intialized) RobotCommandHandle again if _updater_inserter is not called after some timeout?

Update 21 Apr 2025:
The ready_callback of async_make_participant didnt get called for the affected robots.

Question added on 23 Apr 2025:
what is the chance the following code here in Registration register_participant will enter an infinite loop and never exit:

while (future.wait_for(100ms) != std::future_status::ready)
{
  if (!rclcpp::ok(context))
  {
    // *INDENT-OFF*
    throw std::runtime_error(
      "[rmf_traffic_ros2::schedule::Writer] Tearing down while waiting "
      "for a schedule participant to finish registering");
    // *INDENT-ON*
  }

  //TODO: add timeout checking and throw error?


}

Edited by @cwrx777 at 2025-04-23T09:19:45Z