[Regression] netinstall-cli v7.24.4 fails to boot device (stuck in BOOTP loop), while v7.24.2 works correctly

@EdPa @strods @sergejs

Environment / Configuration:
OS: Linux (localhost)
Interface: eth0 (192.168.88.2/24, Gateway 192.168.88.1)
Packages: routeros-7.24.4-arm64.npk, wifi-qcom-7.24.4-arm64.npk
Target IP: 192.168.88.3
Description:
There is a regression in netinstall-cli version 7.24.4. The utility continuously loops on receiving BOOTP requests and re-assigning the IP address without proceeding to the installation phase. Reverting to version 7.24.2 using the exact same arguments and package files resolves the issue — the tool negotiates the block size (blksize 1452), boots the device into setup mode, and starts formatting.

Conclusion:
netinstall-cli v7.24.4 breaks the BOOTP/TFTP handshaking process for arm64 architecture, preventing the client device from negotiating blksize and entering setup mode.

Confirmed on mipsbe too, and it follows the BUILD DATE, not the version number. Long-term 7.23.x is affected as well.

Device: wAP ac (RBwAPG-5HacT2HnD, mipsbe). netinstall-cli on Debian 12 (kernel 6.1), on the same L2 segment as the device, through a CRS109 bridge. No other BOOTP/DHCP server answering (the router's DHCP has bootp-support=none, and this was
verified with tcpdump).
Symptom (bad builds): the same thing the OP describes, an endless

Received a BOOTP request from xx:xx:xx:xx:xx:xx (mips)
Assigned 192.168.x.127 to xx:xx:xx:xx:xx:xx

and the device never fetches the boot image (no TFTP at all).

What the packet capture shows: the device sends a new BOOTP request with a fresh xid every 200 ms. The bad netinstall-cli builds do answer, but each reply carries the xid of an older request, and the lag grows over time (1, then 2, … then 5+ requests behind). So RouterBOOT discards every reply and keeps asking. The first reply also only appeared ~4 s after the requests started. The replies themselves are well-formed: correct yiaddr/siaddr/chaddr, file "linux.mips". I checked that the
replies leave the switch port toward the device (/tool sniffer on the switch), so nothing in the path drops them.

Versions I ran on the same host, same device, same day:

netinstall-cli embedded build date result
7.23.5 2026-09-04 06:02 works, full install completed
7.23.7 2026-09-16 12:49 BOOTP loop
7.23.8 2026-10-08 10:16 BOOTP loop
7.24.5 2026-09-29 14:51 BOOTP loop
6.49.23 2026-10-07 16:05 boots the device fine

(The OP's results: 7.24.2 works, 7.24.4 loops.)

Why the date matters more than the version. I extracted the build timestamp embedded in every netinstall-cli binary (the string printed as Version: x.y.z(date)) from the official tarballs. The long-term and stable branches are built in pairs
on the same days:

build date long-term stable / testing status
2026-09-02 7.25beta3 untested
2026-09-03 7.23.4 7.24.2 7.24.2 works (OP)
2026-09-04 7.23.5 works (me)
2026-09-14 7.23.6 7.24.3 untested
2026-09-16 7.23.7 7.24.4 broken (me + OP)
2026-09-29 7.24.5 broken (me)
2026-10-01 7.25rc1 untested
2026-10-08 7.23.8 broken (me)

So the regression entered the shared netinstall code between 2026-09-04 and 2026-09-16 (the 09-14 builds 7.23.6/7.24.3 are the open question). Every build since then is affected, on both branches. That also means "use an older version" is
misleading advice. 7.23.7 has a lower version number than 7.24.2 but is broken, because it was built two weeks later. Workaround: pick a netinstall-cli built on or before 2026-09-04 (e.g. 7.23.5 or 7.24.2). An older netinstall-cli installs
newer .npk files fine. I used 7.23.5 to install 7.23.7 packages.

One more observation, possibly related: on the same LAN, the working 7.23.5 build logged

Could not determine architecture for BOOTP request from <another non-MikroTik device>

and carried on. Something else on this network sends BOOTP requests. The broken builds didn't print that line in the output I captured. Maybe the new code handles a foreign BOOTP request badly, and that slows down or desynchronises the reply path?
That would explain why it works for some people and not others. This is a guess. I haven't tested a broken build with that device removed.

Separate issue, for anyone else on Realtek: with an RTL8168h (r8169 driver) the transfer later stalled at "Sending package…" right after the first ~1 KB UDP chunk. ethtool -K <if> tx off (disable TX checksum offload) fixed that.

Oct/07/2026 16:05:16

I have netinstalled a couple of MIPSBE access points using version 7.24.4 with Netinstall on Linux, and for me it worked without issue.

In the past I had a similar issue on a TILE device (CCR1009) and it appears that at some point in time the firmware on that router had been upgraded with a version that had such issue, it could be resolved by connecting a serial terminal and press some key during boot (I do not remember exactly which, I think Ctrl-E) to force a specific way of booting.

Netinstall is always a bit tricky. There are many factors that determine the outcome, and the more complicated the device used to netinstall is, the more likelyhood of having issues. E.g. firewall, other devices on the network, method to configure the LAN interface ("network manager") all affect things.

Usually attempts to netinstall fail for beginners, right at the moment they need it most.

You have to think about what RouterBoot(firmware) version is installed on the device also.
And I have seen this boot loop when I changed the RouterBoot settings from BOOTP to DHCP.

Netinstall don't support DHCP.

I need to use some trix in my sleafe, see this old thread regarding how to unbrick my old RB750GL.
I was in contact with Mikrotik, and send them some support tickets, and suggest them to add some type of support to netinstall with a option to support DHCP, but haven't seen any thing about that on the new versions.

I can also recommend the github url with the python code to do netinstall, that also solved my "bricked" device. :grinning_face:

I haven't tried netinstall-cli on same devices, but the netinstall.npk has similar issues on some devices. In my case it was old 2Ghz wAP (that planned to use them to test as CMR clients) but netinstall gets stuck at "booting", with architecture in WinBox should as "mmips or smips" that I reported in 7.25 thread (and 7.26beta1 also does not work on the wAPs that failed).

I didn't test more devices since all newer ARM/ARM64 devices worked. So tent to believe the OP is same bug, since the boot part of netinstall.npk likely the same as netinstall-cli uses.

I netinstalled a 2GHz wAP using netinstall 7.24.4 on Linux without problems.

Fair enough. It could be age of RouterBOOT on the non-ARM devices that's the other factor here.