arduino/Arduino · error · RunnerException

Burning bootloader is not supported via network!

Error message

Burning bootloader is not supported via network!

What it means

GenericNetworkUploader.burnBootloader unconditionally throws this RunnerException: burning a bootloader requires direct serial access to the board's bootloader programmer, which is impossible over a network (SSH) upload pathway.

Source

Thrown at arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java:110

    try {
      String pattern;
      //check if there is a separate pattern for network uploads
      pattern = prefs.get("upload.network_pattern");
      if(pattern == null)
        pattern = prefs.getOrExcept("upload.pattern");
      String[] cmd = StringReplacer.formatAndSplit(pattern, prefs);
      uploadResult = executeUploadCommand(cmd);
    } catch (RunnerException e) {
      throw e;
    } catch (Exception e) {
      throw new RunnerException(e);
    }
    return uploadResult;
  }

  @Override
  public boolean burnBootloader() throws RunnerException {
    throw new RunnerException("Burning bootloader is not supported via network!");
  }
}

View on GitHub (pinned to a0df6e0e83)

Solutions

  1. Connect the board via USB and select the serial (not network) port, then burn the bootloader
  2. Use an external ISP programmer attached directly to the board
  3. If using a Yún, burn the bootloader on the via serial through the ISP header with avrdude locally

Example fix

// before: network port selected
// port: yun@192.168.240.1
// after: select USB serial port
// port: /dev/ttyUSB0 (or COM3)
Defensive patterns

Strategy: validation

Validate before calling

// Only burn bootloader when a serial port is selected
if (port.getAddress().contains("@")) {
    throw new IllegalStateException("Select a USB serial port to burn the bootloader");
}

Try / catch

try {
    uploader.burnBootloader();
} catch (RunnerException e) {
    if (e.getMessage().contains("not supported via network")) {
        // instruct user to switch to a USB serial port / ISP programmer
    }
}

Prevention

When it happens

Trigger: Calling Tools > Burn Bootloader while the selected board/port is a network board handled by GenericNetworkUploader (e.g. Yún accessed via IP address).

Common situations: Users of WiFi/Ethernet-connected boards attempting to burn a bootloader remotely; selecting the network port instead of the USB serial port.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of arduino/Arduino@a0df6e0e83 (2026-09-06). Data as JSON: /api/errors/dc8ad34fb5e401ef. Report an issue: GitHub.