arduino/Arduino · error · RunnerException
Can't burn bootloader via SSH
Error message
Can't burn bootloader via SSH
What it means
SSHUploader.burnBootloader unconditionally throws this RunnerException. Bootloading writes to the MCU's fuses/bootloader over a hardware programmer and cannot be performed through the SSH/network uploader used for network boards.
Source
Thrown at arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:245
return;
}
for (File file : files) {
if (!FILES_NOT_TO_COPY.contains(file.getName())) {
if (file.isDirectory() && file.canExecute()) {
scp.startFolder(file.getName());
recursiveSCP(file, scp);
scp.endFolder();
} else if (file.isFile() && file.canRead()) {
scp.sendFile(file);
}
}
}
}
@Override
public boolean burnBootloader() throws RunnerException {
throw new RunnerException("Can't burn bootloader via SSH");
}
}
View on GitHub (pinned to a0df6e0e83)
Solutions
- Connect the board over USB and select the serial port, then burn the bootloader
- Use a dedicated ISP programmer (e.g. USBasp, another Arduino as ISP) wired to the board's ICSP header
Example fix
// before port: yun@192.168.240.1 -> Burn Bootloader // after port: /dev/ttyACM0 with ISP programmer attached -> Burn Bootloader
Defensive patterns
Strategy: validation
Validate before calling
if (port.getAddress().contains("@")) {
throw new IllegalStateException("Burn Bootloader requires a serial port + ISP, not SSH");
} Try / catch
try {
uploader.burnBootloader();
} catch (RunnerException e) {
if (e.getMessage().contains("via SSH")) {
// switch to serial port with ISP programmer attached
}
} Prevention
- Restrict bootloader operations to serial ports
- Wire an ISP programmer (USBasp / Arduino-as-ISP) for bootloader tasks
- Document network-board limitations for your team
When it happens
Trigger: Selecting Burn Bootloader while a network (SSH-based) board port such as a Yún at an IP address is the active port.
Common situations: Users of network-attached boards attempting to recover/reflash the bootloader remotely.
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
- Burning bootloader is not supported via network!
- Unable to find a way to connect
- Network upload using programmer not supported
- Unable to connect to {0}
- CRC doesn't match, file is corrupted. It may be a temporary
AI-assisted analysis of arduino/Arduino@a0df6e0e83 (2026-09-06).
Data as JSON: /api/errors/b1661624a0d817cf.
Report an issue: GitHub.