Skip to content

Commit ef9cdc3

Browse files
Skip node DB fetch during --ota-update / --reboot-ota
OTA only needs the local node to send the startOTA admin request and then streams firmware directly to the loader over WiFi; it never reads the node DB. On a device with a large node DB the initial dump can stall and the firmware closes the API connection before it processes the OTA request, so OTA silently fails. Imply --no-nodes for --ota-update / --reboot-ota. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 19d0669 commit ef9cdc3

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

‎meshtastic/__main__.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,6 +1590,12 @@ def common():
15901590
if not os.path.isfile(args.ota_update):
15911591
meshtastic.util.our_exit(f"Error: OTA firmware file not found: {args.ota_update}", 1)
15921592

1593+
# OTA (WiFi/BLE) only needs the local node to send the admin request and then
1594+
# streams the firmware directly; it never reads the node DB. Skip fetching it so a
1595+
# large node DB dump can't stall/close the connection before the OTA request lands.
1596+
if getattr(args, "ota_update", None) or getattr(args, "reboot_ota", False):
1597+
args.no_nodes = True
1598+
15931599
if have_powermon:
15941600
create_power_meter()
15951601

0 commit comments

Comments
 (0)