Problem statement

In some cases Mikrotik routers cannot be rebooted with a standard reboot command

/system/reboot

Forum Link

The reason could be: internal storage is full. This can happen in scenarios such as:

  • Replacing wifi package or install additional ( zerotier )
  • ad filters = address-lists and DNS cache
  • Managing very large address-lists In these cases, system processes may reject to reboot with /system/reboot
  flowchart LR
    FULL((Disk Full)) --> WRITE_FAIL((Write Fails)) --> REBOOT_FAIL((Reboot Fails)) --> RETRY((Try Again)) --> FULL

    style FULL fill:#fde68a,stroke:#b45309,stroke-width:2px
    style WRITE_FAIL fill:#fecaca,stroke:#b91c1c,stroke-width:2px
    style REBOOT_FAIL fill:#bfdbfe,stroke:#1d4ed8,stroke-width:2px
    style RETRY fill:#d1fae5,stroke:#047857,stroke-width:2px

Solution: Using Watchdog with non-existing host

30.30.30.30 just an example ( at least it’s not pingable, that we need )

/system/watchdog> set watch-address=30.30.30.30 ping-start-after-boot=1m
[user@Mikrotik] /system/watchdog> print
          watch-address: 30.30.30.30
         watchdog-timer: yes
  ping-start-after-boot: 1m
           ping-timeout: 1m
       automatic-supout: no
       auto-send-supout: no
16:24:34 echo: watchdog,error,critical watchdog cannot ping address 30.30.30.30, rebooting

Notes

  • You should clear the space ( delete packets or address-lists ) before rebooting just in case you need to solve storage issue