MAVLINK UDP links go "down" while uploading mission

Running Ubuntu22.04 in WSL on Windows 11 box. Trying to upload missions to multiple SITL Rovers using mavlink script. Sometimes it works, sometimes it doesn’t.

When it doesn’t I get “link down” messages on Mavlink Console like:
“AP: ArduRover V4.4.0-dev (39596188)
no link
link 1 down
link 2 down”

The link can go down when running any of three different functions. And if mission is 8 waypoints 5 of them might get lost. The consistent thing is the links go down. And all of them at once, even if I am only uploading one mission at that moment.

Here are commands in question

A connection.mav.command_long_send(connection.target_system, connection.target_component,
mavutil.mavlink.MAV_CMD_DO_SET_HOME,
1, # set position
0, # param1
0, # param2
0, # param3 …
B connection.waypoint_count_send(wp.count())
C connection.mav.send(wp.wp(msg.seq))

I can create loops that look for the heartbeat and then reboot the connections as ‘fix’. But I wonder if I am missing something more basic. Thanks.

Did you give each vehicle a different sysid ?

I believe so. Each has its own Sys ID. I can see that works both from a terminal when launched and from each vehicles mavlink console.
Here are two examples: “Setting SIM_SPEEDUP=10.000000
Setting SYSID_THISMAV=4
Home: 33.809313 -118.393867 alt=0.000000m hdg=270.000000
Starting sketch ‘Rover’
Starting SITL input
Using Irlock at port : 9035
bind port 5790 for 0
Serial port 0 on TCP port 5790” AND
“Setting SIM_SPEEDUP=10.000000
Setting SYSID_THISMAV=2
Home: 33.810313 -118.393867 alt=0.000000m hdg=270.000000
Starting sketch ‘Rover’
Starting SITL input
Using Irlock at port : 9015
bind port 5770 for 0
Serial port 0 on TCP port 5770
Waiting for connection …
Connection on serial port 5770
Loaded defaults from …/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm
bind port 5772 for 2”
So I think each has it’s own SYSID and port

here’s what two different terminals report at launch:
FIRST VEHICLE
Build commands will be stored in build/sitl/compile_commands.json
‘build’ finished successfully (2.114s)
SIM_VEHICLE: Using defaults from (…/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm)
SIM_VEHICLE: Run Rover
SIM_VEHICLE: “/usr/local/src/ardupilot/Tools/autotest/run_in_terminal_window.sh” “Rover” “/usr/local/src/ardupilot/build/sitl/bin/ardurover” “-S” “–model” “motorboat” “–speedup” “10” “–slave” “0” “–defaults” “…/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm” “–sim-address=127.0.0.1” “-I1” “–home” “33.810313,-118.39386700000001,0.0,270.0” “–sysid” “2”
RiTW: Starting Rover : /usr/local/src/ardupilot/build/sitl/bin/ardurover -S --model motorboat --speedup 10 --slave 0 --defaults …/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm --sim-address=127.0.0.1 -I1 --home 33.810313,-118.39386700000001,0.0,270.0 --sysid 2
SIM_VEHICLE: Run MavProxy
SIM_VEHICLE: “mavproxy.py” “–out” “172.20.64.1:14560” “–out” “172.20.64.1:14561” “–master” “tcp:127.0.0.1:5770” “–sitl” “127.0.0.1:5511” “–out” “udp:0.0.0.0:14550” “–map” “–console”
Connect tcp:127.0.0.1:5770 source_system=255
Loaded module console
Loaded module map
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from tcp:127.0.0.1:5770
MAV> Detected vehicle 2:1 on link 0
INITIALISING> MANUAL> Received 1232 parameters (ftp)
Saved 1232 parameters to mav_2_1.parm
MAV>

SECOND VEHICLE
SIM_VEHICLE: “/usr/local/src/ardupilot/Tools/autotest/run_in_terminal_window.sh” “Rover” “/usr/local/src/ardupilot/build/sitl/bin/ardurover” “-S” “–model” “motorboat” “–speedup” “10” “–slave” “0” “–defaults” “…/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm” “–sim-address=127.0.0.1” “-I2” “–home” “33.809813,-118.39386700000001,0.0,270.0” “–sysid” “3”
RiTW: Starting Rover : /usr/local/src/ardupilot/build/sitl/bin/ardurover -S --model motorboat --speedup 10 --slave 0 --defaults …/Tools/autotest/default_params/rover.parm,…/Tools/autotest/default_params/motorboat.parm --sim-address=127.0.0.1 -I2 --home 33.809813,-118.39386700000001,0.0,270.0 --sysid 3
SIM_VEHICLE: Run MavProxy
SIM_VEHICLE: “mavproxy.py” “–out” “172.20.64.1:14570” “–out” “172.20.64.1:14571” “–master” “tcp:127.0.0.1:5780” “–sitl” “127.0.0.1:5521” “–out” “udp:0.0.0.0:14560” “–map” “–console”
Connect tcp:127.0.0.1:5780 source_system=255
Loaded module console
Loaded module map
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from tcp:127.0.0.1:5780
Detected vehicle 3:1 on link 0
MAV> INITIALISING> MANUAL> Received 1232 parameters (ftp)
Saved 1232 parameters to mav_3_1.parm