{"record":{"id":"dc8ad34fb5e401ef","repo":"arduino/Arduino","slug":"burning-bootloader-is-not-supported-via-network","errorCode":null,"errorMessage":"Burning bootloader is not supported via network!","messagePattern":"Burning bootloader is not supported via network!","errorType":"exception","errorClass":"RunnerException","httpStatus":null,"severity":"error","filePath":"arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java","lineNumber":110,"sourceCode":"    try {\n      String pattern;\n      //check if there is a separate pattern for network uploads\n      pattern = prefs.get(\"upload.network_pattern\");\n      if(pattern == null)\n        pattern = prefs.getOrExcept(\"upload.pattern\");\n      String[] cmd = StringReplacer.formatAndSplit(pattern, prefs);\n      uploadResult = executeUploadCommand(cmd);\n    } catch (RunnerException e) {\n      throw e;\n    } catch (Exception e) {\n      throw new RunnerException(e);\n    }\n    return uploadResult;\n  }\n\n  @Override\n  public boolean burnBootloader() throws RunnerException {\n    throw new RunnerException(\"Burning bootloader is not supported via network!\");\n  }\n}\n","sourceCodeStart":92,"sourceCodeEnd":113,"githubUrl":"https://github.com/arduino/Arduino/blob/a0df6e0e83b652c72bc78b0a1376c54d6ebc3bee/arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java#L92-L113","documentation":"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.","triggerScenarios":"Calling Tools > Burn Bootloader while the selected board/port is a network board handled by GenericNetworkUploader (e.g. Yún accessed via IP address).","commonSituations":"Users of WiFi/Ethernet-connected boards attempting to burn a bootloader remotely; selecting the network port instead of the USB serial port.","solutions":["Connect the board via USB and select the serial (not network) port, then burn the bootloader","Use an external ISP programmer attached directly to the board","If using a Yún, burn the bootloader on the via serial through the ISP header with avrdude locally"],"exampleFix":"// before: network port selected\n// port: yun@192.168.240.1\n// after: select USB serial port\n// port: /dev/ttyUSB0 (or COM3)","handlingStrategy":"validation","validationCode":"// Only burn bootloader when a serial port is selected\nif (port.getAddress().contains(\"@\")) {\n    throw new IllegalStateException(\"Select a USB serial port to burn the bootloader\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    uploader.burnBootloader();\n} catch (RunnerException e) {\n    if (e.getMessage().contains(\"not supported via network\")) {\n        // instruct user to switch to a USB serial port / ISP programmer\n    }\n}","preventionTips":["Only run Burn Bootloader on directly connected serial ports","Use an external ISP for bootloader work","Never attempt bootloader operations over SSH ports"],"tags":["upload","bootloader","network","unsupported"],"backgroundTag":"unsupported-operation","analyzedSha":"a0df6e0e83b652c72bc78b0a1376c54d6ebc3bee","analyzedAt":"2026-09-06T10:13:38.901Z","contentChangedAt":"2026-09-06T10:13:38.901Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}